字符数少于255时的VBA FormulaArray范围类错误

时间:2019-04-29 10:06:55

标签: arrays excel vba formula

VBA .FormulaArray似乎与我的范围有关。我读过它不能处理255个以上的字符,但是我的字符大约只有108个,但是我可能理解错了。

它给出一个

  

错误1004:
  无法设置Range类的FormulaArray属性。

我尝试将公式保留在表列中,并在表中填充宏后自动填充该公式,但是问题是在宏开始运行之前索引数组表还不存在。

还尝试将其保留为文本,然后将该列更改为“常规”,但它不起作用。而且我知道它也会以这种方式将其更改为数组公式也会产生问题。

这是我正在使用的代码:

With wsOutdated.ListObjects("Table_Outdated_Stock_Counts")
        .ListColumns("Ranging").DataBodyRange.NumberFormat = "General"
        .ListColumns("Ranging").DataBodyRange.FormulaArray = "=INDEX(Table_DispoData[[Class]],MATCH([@Article]&[@Site],Table_DispoData[Article]&Table_DispoData[Site],0),1)"
    End With

我需要表列自动用数组公式填充。 它适用于其他列(尽管它们不是数组公式,只需要匹配一个值)。

1 个答案:

答案 0 :(得分:2)

也许您可以尝试:

.ListColumns("Ranging").DataBodyRange.Cells(1, 1).FormulaArray = "=INDEX(Table_DispoData[[Class]],MATCH([@Article]&[@Site],Table_DispoData[Article]&Table_DispoData[Site],0),1)"

代替:

.ListColumns("Ranging").DataBodyRange.FormulaArray = "=INDEX(Table_DispoData[[Class]],MATCH([@Article]&[@Site],Table_DispoData[Article]&Table_DispoData[Site],0),1)"

看看它是否对您有用!

说明:

  

您的代码尝试将Array公式同时写入多个单元格,这是不允许的。   如果您尝试在Excel中执行此操作,则它将返回错误“表中不允许使用多单元格数组公式”。