PaulDN
PaulDN

Reputation: 15

Inserting Array Formula with VBA

I am trying to insert an array formula using VBA but I keep getting the error

"Unable to set the FormulaArray property of the Range class"

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.

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!

Upvotes: 0

Views: 44

Answers (1)

FaneDuru
FaneDuru

Reputation: 42236

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...

Upvotes: 1

Related Questions