2017-04-03 144 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

工作!非常感谢! –