数据验证宏,自定义指定范围

Data Validation Macro, custom specified range

我正在 excel (VBA) 中编写代码,涉及从同一 sheet 中的一系列单元格创建数据验证列表。但是,此范围会因大小和内容而异。

我正在使用的与数据验证相关的部分代码可在此处找到:

 With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=RangeData
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

其中RangeData是我之前定义的变量范围

我遇到的第一个问题是 RangeData,我遇到了一个错误。我想知道是否有其他方法来指定范围。请记住,范围经常变化。

其次,我希望在 table 中插入新行时启动宏。我似乎不知道该怎么做。

非常感谢您的回复,并提前感谢您的宝贵时间!

右键单击 sheet 选项卡并 select 查看代码,您可以将代码键入 Worksheet_Change 事件或直接复制并粘贴它。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rws As Long, Rng As Range
    Rws = Cells(Rows.Count, "A").End(xlUp).Row
    Set Rng = Range(Cells(1, 1), Cells(Rws, 1))
    Rng.Name = "RangeData"

    With Range("C1").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:="=RangeData"
    End With

End Sub

不知道什么是 selected 单元格,我使用 range("C1") 进行数据验证。