我試圖包含帶有名稱的表列,但出現錯誤,Scrupt out of Range我不知道為什么。您的幫助將不勝感激。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim userSelectedDate As Date
Dim DateRange As Range
DateRange = ActiveSheet.ListObjects("T_EMP").ListColumns("[START DATE]").DataBodyRange
'Show calendar form if selected cell falls within "DateRange" named range
If Not Intersect(ActiveCell, Sheet2.Range("DateRange")) Is Nothing Then
If IsDate(ActiveCell.value) Then userSelectedDate = ActiveCell.value
'Call CalendarForm
userSelectedDate = CalendarForm.GetDate(SelectedDate:=userSelectedDate)
'Make sure user selected a valid date from the CalendarForm
If userSelectedDate <> 0 Then ActiveCell.value = userSelectedDate
End If
End Sub
uj5u.com熱心網友回復:
- 你不見了
Set:Set DateRange = ...。 - 變數不屬于引號內,并且您已經有一個
Range變數:DateRange,不Sheet2.Range("DateRange") - 使用
TargetandMe代替ActiveCellandActiveSheet。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub ' only proceed if one cell selected
Dim userSelectedDate As Date
Dim DateRange As Range
Set DateRange = Me.ListObjects("T_EMP").ListColumns("[START DATE]").DataBodyRange
'Show calendar form if selected cell falls within "DateRange" named range
If Not Intersect(Target, DateRange) Is Nothing Then
If IsDate(Target.Value) Then userSelectedDate = Target.Value
'Call CalendarForm
userSelectedDate = CalendarForm.GetDate(SelectedDate:=userSelectedDate)
'Make sure user selected a valid date from the CalendarForm
If userSelectedDate <> 0 Then Target.Value = userSelectedDate
End If
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/396377.html
上一篇:洗掉整個空白列
下一篇:如何在vba中同時觸發多個目標值
