VBA - 为动态相关下拉列表添加公式的问题

时间:2016-05-02 21:17:31

标签: excel vba excel-vba validation

我遇到了一个特殊错误的独特问题,我似乎无法在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

感谢任何帮助。我可以从技术上设置这些依赖于它们的单元格,然后清除它们 - 这看起来像一个丑陋的解决方案,然而它并不是特别容易,因为我的所有公式都是动态命名范围。

这也发布了:http://www.mrexcel.com/forum/excel-questions/938761-visual-basic-applications-error-handling-adding-data-validation-dynamic-drop-downs-programmatically.html

0 个答案:

没有答案