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

时间:2014-03-14 07:30:28

标签: excel vba excel-vba

我有50个动态命名范围,称为“Line1_S”,“Line2_S”,“Line3_S”,...到“Line50_S”。

在我的工作表“定价工具”中,我想在单元格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)))

1 个答案:

答案 0 :(得分:1)

作为评论的后续跟踪,OFFSET(..)在返回#REF!时触发了错误。

  

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

如何解决问题的主要思想是从下拉列表中选择Offset返回某些内容(不是#REF!),运行代码(它应用验证)然后清除下拉列表