当字符小于255时,VBA FormulaArray范围类错误

问题描述 投票:1回答:1

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

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

arrays excel vba formula
1个回答
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中执行此操作,则会返回错误“表中不允许使用多单元格数组公式”。

© www.soinside.com 2019 - 2024. All rights reserved.