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
我需要表列自动用数组公式填充。 它适用于其他列(尽管它们不是数组公式,只需要匹配一个值)。
答案 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中执行此操作,则它将返回错误“表中不允许使用多单元格数组公式”。