I am trying to get the following long array into a vba sub procedure, however it continues to give the 'cannot set the formula array into the range class' error despite each of the pieces being less than 255 characters. Any help would be appreciated.
Thanks.
Dim rows As Long
Dim rows1 As Long
Dim form1 As String
Dim form2 As String
Dim form3 As String
rows = Worksheets("EOD t-1").Range("H1").End(xlDown).Row
rows1 = ActiveSheet.Range("G1").End(xlDown).Row
form1 = "=IF(RC[-2]=0,SUM(IF(FREQUENCY(IF('EOD t-1'!R2C1:R" & rows & "C1=EOD!RC[-7],IF('EOD t-1'!R2C3:R" & rows & "C3=RC[-5]," & _
"X_X())" & _
"X_X_X())"
form2 = "MATCH('EOD t-1'!R2C1:R" & rows & "C1&'EOD t-1'!R2C2:R" & rows & "C2&'EOD t-1'!R2C3:R" & rows & "C3,'EOD t-1'!R2C1:R" & rows & "C1&'EOD t-1'!R2C2:R" & rows & "C2&'EOD t-1'!R2C3:R" & rows & "C3,0))),"
form3 = "ROW('EOD t-1'!R2C1:R" & rows & "C1)-ROW('EOD t-1'!R2C1)+1),'EOD t-1'!R2C8:R" & rows & "C8)),RC[-3]/(RC[-2]/100))"
With ActiveSheet.Range("H2:H" & rows1 & "")
.FormulaArray = form1
.Replace "X_X())", form2
.Replace "X_X_X())", form3
.NumberFormat = "_($* #,##0_);_($* (#,##0);_($* ""-""??_);_(@_)"
End With
Bookmarks