我有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)))
答案 0 :(得分:1)
作为评论的后续跟踪,OFFSET(..)
在返回#REF!
时触发了错误。
偏移量由其他下拉列表控制,其中一些没有选择,即它们是空的
如何解决问题的主要思想是从下拉列表中选择Offset
返回某些内容(不是#REF!
),运行代码(它应用验证)然后清除下拉列表