数据验证宏,自定义指定范围
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") 进行数据验证。
我正在 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") 进行数据验证。