繁体   English   中英

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

[英]VBA FormulaArray range class error when the Characters are less than 255

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中执行此操作,则它将返回错误“表中不允许使用多单元格数组公式”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM