【发布时间】:2012-05-09 05:10:50
【问题描述】:
通常可以通过 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” 类似的不同排列,并且所有命名范围都已定义
【问题讨论】:
-
如果你能把源代码贴出来会更清楚。
-
@EdwinBautista 已添加源代码
-
错误是什么,错误在哪一行?
-
vba 尝试添加验证时发生错误..我收到运行时错误“1004”“应用程序定义或对象定义错误”..由于验证当前将评估为一个错误,vba 不会让我继续……而 excel 会……
标签: excel excel-2003 vba