VBA実行時エラー1004:範囲クラスのformulaarrayプロパティを設定できません
このリンクでディック・クスレイカのアドバイスに従いましたが、次の配列数式を取得して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
読みやすくするために、式をより多くの行に分割してみました。
コメントで述べたように、これは数式の最初の部分の長さです。さらに単純化することをお勧めします。
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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加