我遇到了一个特殊错误的独特问题,我似乎无法在VBA中解决这个问题。我想要做的是将数据验证公式添加到各种单元格中。这些公式是依赖于dynicamic(级联)下拉列表。我必须输入公式,而不是原始VBA,因为最终用户需要能够将项目添加到这些列表并立即更新。
输入相关验证的公式(第二个或更高)时会出现问题。尝试添加这些时,我收到错误1004(应用程序定义的错误)。看起来这是因为公式计算错误,因为此验证所依赖的单元格当前为空(未进行选择)。
如果手动将公式添加到数据验证,您会收到一条关于它的弹出消息,评估错误,您可以接受它。而不是发生此错误(可以通过警报处理),您得到上述1004错误。同样地,围绕它进行包装错误处理也没有做任何事情 - 它只是使得项目没有被填充。
作为参考,这里是导致问题的代码片段(从数组值添加验证 - 这一切都正常运行):
'Make changes tied to validation array
For x1 = LBound(selvallist, 2) To UBound(selvallist, 2)
'Locate cells and add validation
With builderwb.Worksheets("Data").Cells.Find(selvallist(3, x1), LookIn:=xlValues, lookat:=xlWhole).Offset(1, 0).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=selvallist(4, x1)
End With
Next x1
以下是添加的公式:
=OFFSET(Anchor, 1, MATCH(V2, GenReason, 0)-1, COUNTA(OFFSET(Anchor, , MATCH(V2, GenReason, 0)-1, 50, 1))-1, 1)
以下是手动添加时出现的消息: Error message
感谢任何帮助。我可以从技术上设置这些依赖于它们的单元格,然后清除它们 - 这看起来像一个丑陋的解决方案,然而它并不是特别容易,因为我的所有公式都是动态命名范围。