【问题标题】:Including the Table Column with name but getting an error包括带有名称但出现错误的表列
【发布时间】:2022-01-27 04:23:31
【问题描述】:

我正在尝试包含带有名称的表格列,但收到错误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

【问题讨论】:

  • 您缺少Set,并且列名实际上是否包含括号[...]?另外你应该使用Target,而不是ActiveCell,和Me,而不是ActiveSheet
  • 谢谢,但是当我现在使用 set 时。它给了我一个错误`对象变量或块变量未在单元格中设置. Yes it caontains brracket i get that using =`你能发布一个答案吗?那应该是什么?

标签: excel vba


【解决方案1】:
  • 你错过了SetSet DateRange = ...
  • 变量不属于引号内,并且您已经有一个Range 变量:DateRange,而不是Sheet2.Range("DateRange")
  • 使用TargetMe 代替ActiveCellActiveSheet
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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 2023-03-16
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多