具有动态范围的下拉列表的VBA代码
我试图为列中的“n”单元格(比如100)中的多个下拉列表编写一个宏。这些下拉列表的范围(下拉值)必须从具有相同行数(在本例中为100)的表中选择 我无法为公式部分(下面突出显示)运行for循环。我希望宏为I=2选择D2:H2范围,为I=3选择D3:H3范围,依此类推。我该怎么做?除此之外还有其他选择吗 期待有价值的投入。 谢谢具有动态范围的下拉列表的VBA代码,vba,excel,Vba,Excel,我试图为列中的“n”单元格(比如100)中的多个下拉列表编写一个宏。这些下拉列表的范围(下拉值)必须从具有相同行数(在本例中为100)的表中选择 我无法为公式部分(下面突出显示)运行for循环。我希望宏为I=2选择D2:H2范围,为I=3选择D3:H3范围,依此类推。我该怎么做?除此之外还有其他选择吗 期待有价值的投入。 谢谢 以下代码应该可以工作: Option Explicit Sub S_Dropdown3() Dim wks As Worksheet Dim i As Integer
以下代码应该可以工作:
Option Explicit
Sub S_Dropdown3()
Dim wks As Worksheet
Dim i As Integer
Set wks = ThisWorkbook.Worksheets("Sheet1")
wks.Activate
For i = 2 To 101
With wks.Range("B" & i).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Sheet2!D" & i & ":H" & i
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Next i
End Sub
已实施的更改:
Sheet1
引用运行宏的工作簿中的Sheet1
(如果打开了多个Excel文件)选择图纸。
仅选择范围。工作表只能激活
。早期版本的Excel不介意。Excel的任何版本都不会在该行中抛出错误范围(“B”和i)
Option Explicit
Sub S_Dropdown3()
Dim wks As Worksheet
Dim i As Integer
Set wks = ThisWorkbook.Worksheets("Sheet1")
wks.Activate
For i = 2 To 101
With wks.Range("B" & i).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Sheet2!D" & i & ":H" & i
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Next i
End Sub