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