VBA运行时错误1004:无法设置范围类的formulaarray属性

VBA运行时错误1004:无法设置范围类的formulaarray属性

在这个链接中 ,我遵循了Dick Kusleika的build议,但无法通过VBA获得以下数组公式进入excel。 任何人都可以看到我要去哪里错了? 公式的两半都容易在255个字符以下。

Public Sub Configuration() Dim theFormulaPart1 As String Dim theFormulaPart2 As String theFormulaPart1 = "=IF(ISODD(B2),IFERROR(INDEX(Race1Grid,MATCH(C2&I2&""Q3""," & _ "QualRace1ID&QualDriver&QSession,0)),IFERROR(INDEX(Race1Grid" & _ ",MATCH(C2&I2&""Q2"",QualRace1ID&QualDriver&QSession,0)),INDEX" & _ "(Race1Grid,MATCH(C2&I2,QualRace1ID&QualDriver,0))))," & _ "X_X_X())" theFormulaPart2 = "IFERROR(INDEX(Race2Grid,MATCH(C2&I2&""Q3"",QualRace2ID&" & _ "QualDriver&QSession,0)),IFERROR(INDEX(Race2Grid,MATCH(C2&" & _ "I2&""Q2"",QualRace2ID&QualDriver&QSession,0)),INDEX(" & _ "Race2Grid,MATCH(C2&I2,QualRace2ID&QualDriver,0)))))" With Worksheets("Races").Range("V2") .FormulaArray = theFormulaPart1 .Replace "X_X_X())", theFormulaPart2 End With End Sub 

我已经尝试将公式分成更多的行,以便于阅读。

正如我在评论中提到的,这只是公式第一部分的长度。 我build议你进一步简化:

 Public Sub Configuration() Dim theFormulaPart1 As String Dim theFormulaPart2 As String Dim theFormulaPart3 As String theFormulaPart1 = "=IF(ISODD(B2),X_X_X1(),X_X_X())" theFormulaPart3 = "IFERROR(INDEX(Race1Grid,MATCH(C2&I2&""Q3""," & _ "QualRace1ID&QualDriver&QSession,0)),IFERROR(INDEX(Race1Grid" & _ ",MATCH(C2&I2&""Q2"",QualRace1ID&QualDriver&QSession,0)),INDEX" & _ "(Race1Grid,MATCH(C2&I2,QualRace1ID&QualDriver,0))))," theFormulaPart2 = "IFERROR(INDEX(Race2Grid,MATCH(C2&I2&""Q3"",QualRace2ID&" & _ "QualDriver&QSession,0)),IFERROR(INDEX(Race2Grid,MATCH(C2&" & _ "I2&""Q2"",QualRace2ID&QualDriver&QSession,0)),INDEX(" & _ "Race2Grid,MATCH(C2&I2,QualRace2ID&QualDriver,0)))))" With ActiveSheet.Range("V2") .FormulaArray = theFormulaPart1 .Replace "X_X_X())", theFormulaPart2 .Replace "X_X_X1()", theFormulaPart3 End With End Sub