[英]Inserting Array Formula with VBA
我正在尝试使用 VBA 插入一个数组公式,但我不断收到错误消息
“无法设置 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
我知道最大字符数为 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
有谁知道我哪里出错了? 提前致谢!
请尝试更改:
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))),"")"
和:
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))),"""")"
从 VBA 编写公式时,只需将双引号加倍即可,无需Selection
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.