2017-04-03 141 views
-1

我寫了宏觀的部分與下面的代碼內,但低於的問題:Excel VBA中,錯誤代碼1004而使用運行「指數」式

代碼:

Dim OldSMIWB As Workbook 
... 
Selection.FormulaR1C1 = _ 
"=INDEX('[" & OldSMIWB.Name & "]SMI Data'!C1:C60,MATCH(RC1,'[" & OldSMIWB.Name & "]SMI Data'!C1,0),MATCH(R1C,'[" & OldSMIWB.Name & "]SMI Data'!R1,0))" 
... 

錯誤消息:

運行時錯誤「1004」:

應用程序定義或對象定義的錯誤

任何人都可以幫我嗎?

讚賞!

託尼

+0

什麼是'OldSMIWB'的價值? –

+0

你有'.FormulaR1C1',但是在這裏使用''「] SMI Data'!C1:C60''。' – BruceWayne

+0

使用Debug.Print或MsgBox查看公式字符串是否正確。爲此,請聲明一個字符串變量併爲其分配公式字符串,然後按照建議使用debug.print或msgbox。 – sktneer

回答

0

因爲你的工作簿的名稱包括撇號(')它需要有撇號,包括它時,你的公式中逃脫:

Dim OldSMIWBName As String 
OldSMIWBName = Replace(OldSMIWB.Name, "'", "''") 
Selection.FormulaR1C1 = _ 
    "=INDEX('[" & OldSMIWBName & "]SMI Data'!C1:C60,MATCH(RC1,'[" & OldSMIWBName & "]SMI Data'!C1,0),MATCH(R1C,'[" & OldSMIWBName & "]SMI Data'!R1,0))" 
+0

工作!非常感謝! –