简体   繁体   English

使用 VBA 插入数组公式

[英]Inserting Array Formula with VBA

I am trying to insert an array formula using VBA but I keep getting the error我正在尝试使用 VBA 插入一个数组公式,但我不断收到错误消息

"Unable to set the FormulaArray property of the Range class" “无法设置 Range 类的 FormulaArray 属性”

Sub Insert()

Range("J2").Select
Selection.FormulaArray = "=IFERROR(INDEX('Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$C:$C, SMALL(IF(A2='Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$B:$B, ROW('Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$C:$C)-MIN(ROW('Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$C:$C))+1, ""), ROW(A1))),"")"

End Sub

I know about the 255 maximum character count so I shortened the formula to the below and I get the same error.我知道最大字符数为 255,所以我将公式缩短为下面的公式,但我得到了同样的错误。

Sub Insert()

Range("J2").Select
Selection.FormulaArray = "=IFERROR(INDEX('C:\[OrderLinesList.xlsx]Sales'!$C:$C, SMALL(IF(A2='C:\[OrderLinesList.xlsx]Sales'!$B:$B, ROW('C:\[OrderLinesList.xlsx]Sales'!$C:$C)-MIN(ROW('C:\[OrderLinesList.xlsx]Sales'!$C:$C))+1, ""), ROW(A1))),"")"

End Sub

Does anybody know where I am going wrong?有谁知道我哪里出错了? Thanks in advance!提前致谢!

Please, try changing of:请尝试更改:

Selection.FormulaArray = "=IFERROR(INDEX('Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$C:$C, SMALL(IF(A2='Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$B:$B, ROW('Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$C:$C)-MIN(ROW('Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$C:$C))+1, ""), ROW(A1))),"")"

with:和:

Range("J2").FormulaArray = "=IFERROR(INDEX('Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$C:$C, SMALL(IF(A2='Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$B:$B, ROW('Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$C:$C)-MIN(ROW('Z:\Customer Operations\2021\Tools\[OrderLinesList.xlsx]Sales'!$C:$C))+1, """"), ROW(A1))),"""")"

It is only a matter of doubling the double quotes when write the formula from VBA and no Selection is necessary...从 VBA 编写公式时,只需将双引号加倍即可,无需Selection ...

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

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