通常可以通过 vba 在 excel 中应用数据验证,但我遇到了一个特定问题
我正在使用间接方法来应用验证,通常当我不使用 vba 时,我会收到 excel 的警告“源当前评估为错误,你想继续吗?” (这是因为间接引用的单元格可能为空),现在我可以通过单击“是”轻松跳过 Excel 中的此错误
这是链接http://www.contextures.com/xldataval02.html(相关验证列表)
但是当我尝试使用 vba 执行相同的操作时,我遇到了运行时错误,没有友好的提示可以让我继续。我该如何处理这种错误。
错误恢复不起作用,因为那时 vba 根本不应用验证。
这是代码
Set rng = ThisWorkbook.Sheets("input").Range("AB11:AB65536")
With rng.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:= _
"=INDIRECT(cablecode&""_depth_""&$Q11&""_""&$Z11&""_values"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
cablecode 是一个静态命名范围
Q11 和 Z11 指的是该特定行中的输入
depth和values是普通字符串
cablecode 可以有两个值 = "is" 或 "iec"
Q11 可以是“xlpe”或“pvc”
Z11 可以是“al”或“cu”
由于我直接引用它的整个项目的电缆代码是恒定的,所以 Q11 和 Z11 对于不同的行可能是不同的,所以我单独引用它们
整个字符串是“is_depth_al_xlpe_values”类似不同的排列,并且所有命名范围都已经定义