VBA – 添加dynamic相关下拉公式的问题

我遇到了一个独特的问题,在VBA中似乎无法解决某个特定的错误。 我想要做的是将数据validation公式添加到各个单元格。 这些公式是dynicamic相关(级联)下拉。 我必须input一个公式,而不是原始的VBA,因为最终用户需要能够将项目添加到这些列表并立即更新。

input相关validation的公式(第二个或更高)时会出现问题。 当试图添加这些,我收到错误1004(应用程序定义的错误)。 看起来这是因为公式计算为错误,因为该validation所依赖的单元格当前是空的(没有进行select)。

如果公式被手动添加到数据validation中,您会收到关于评估错误的popup消息,您可以接受它。 而不是这个错误发生(这可以与警报处理),你会得到上述1004错误。 同样,在它周围的包装error handling不会做任何事情 – 它只是使这个项目不填充。

作为参考,这里是代码片断导致的问题(validation正在添加一个数组值 – 这一切function正确):

'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) 

以下是手动添加时出现的消息: 错误消息

任何帮助表示赞赏。 我可以从技术上设置这些依赖的单元格的值,然后清除它们 – 这看起来像一个难看的解决scheme,但并不是特别容易,因为我所有的公式都是dynamic的命名范围。

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