2016-11-18 119 views
0

VBA運行時錯誤1004:無法設置範圍類VBA運行時錯誤1004:無法設置範圍類的FormulaArray屬性

我已經按照迪克Kusleika的建議的FormulaArray屬性在此link,但無法通過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 

我已經嘗試將公式分成多行以便於閱讀。

+0

你已經使用'Formula'而不是'FormulaArray'。 – Rory

+0

我已經編輯了這個問題... –

+0

你的配方的第一部分仍然太長。 – Rory

回答

1

正如我在評論中提到的,這只是公式第一部分的長度。我建議你進一步簡化:

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 
+0

謝謝,分解成三個,現在至少沒有1004錯誤。警告 - 我實際上試圖將此公式插入到表中,並且在運行宏V2後顯示#VALUE!如果我單擊單元格並按Ctrl + Shift + Enter,它將以數組形式進入。是什麼賦予了? .FormulaArray被指定在Sub! –

+0

它最初出現在{}周圍的單元格中嗎? – Rory

+0

不,但你和我使用的代碼都表明'.FormulaArray ='所以我有點困惑... –

相關問題