Vba 使用变量创建多个验证列表

Vba 使用变量创建多个验证列表,vba,excel,Vba,Excel,我有50个动态命名范围,称为“Line1_S”、“Line2_S”、“Line3_S”,。。。至“第50行” 在我的工作表“定价工具”中,我想在单元格C7到C56中创建50个验证(下拉)列表 单元C7应具有命名范围“Line1_S”,单元C8应具有“Line2_S”,依此类推,直到C56具有“Line50_S” 我的代码的公式部分不断出现错误;请你看一下,帮我解决这个问题好吗 Sub test() Dim j As Integer For j = 1 To 50 With Shee

我有50个动态命名范围,称为“Line1_S”、“Line2_S”、“Line3_S”,。。。至“第50行”

在我的工作表“定价工具”中,我想在单元格C7到C56中创建50个验证(下拉)列表

单元C7应具有命名范围“Line1_S”,单元C8应具有“Line2_S”,依此类推,直到C56具有“Line50_S”

我的代码的公式部分不断出现错误;请你看一下,帮我解决这个问题好吗

Sub test()

Dim j As Integer

For j = 1 To 50

    With Sheets("Pricing Tool").Cells(j + 6, 3).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=Line" & j & "_S" ' this is where the error occurs
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

Next

End Sub
非常感谢你的帮助

编辑-在命名范围的示例下方:

=OFFSET('Size Selection'!$E$4, 0, 0, 1, COUNT(IF('Size Selection'!$E$4:$AJ$4="", "", 1)))

作为注释的后续,当返回
#REF!时,
偏移(..)
触发的错误

偏移量由其他下拉列表控制,其中一些列表中没有选择项,即它们是空的


解决这个问题的主要方法是从下拉列表中选择一些东西,这些东西
Offset
返回一些东西(不是
#REF!
),运行代码(它应用验证),然后清除下拉列表。

错误到底是怎么说的?代码对我来说很好,请检查tipoThanks所有命名范围的名称,以获得simoco的帮助。它表示运行时错误“1004”;应用程序定义或对象定义错误。已命名区域的范围检查已命名区域的范围:。他们是否有工作簿或工作表范围?所有工作簿范围?您能否以某种方式共享您的工作簿(例如使用),因为我看不到您的代码有问题