Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA,使用“运行”时出现错误代码1004;索引“;公式_Vba_Excel - Fatal编程技术网

Excel VBA,使用“运行”时出现错误代码1004;索引“;公式

Excel VBA,使用“运行”时出现错误代码1004;索引“;公式,vba,excel,Vba,Excel,我编写了一段宏,其中包含以下代码,但存在以下问题: 代码: 错误消息: 运行时错误“1004”: 应用程序定义或对象定义错误 有人能帮我吗 谢谢 Tony因为您的工作簿名称包含撇号(”),所以在公式中包含撇号时需要对其进行转义: Dim OldSMIWBName As String OldSMIWBName = Replace(OldSMIWB.Name, "'", "''") Selection.FormulaR1C1 = _ "=INDEX('[" & OldSMIWBNam

我编写了一段宏,其中包含以下代码,但存在以下问题:

代码:

错误消息:

运行时错误“1004”:

应用程序定义或对象定义错误

有人能帮我吗

谢谢


Tony

因为您的工作簿名称包含撇号(
),所以在公式中包含撇号时需要对其进行转义:

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))"

OldSMIWB
的值是多少?您有
.FormulaR1C1
,但在此处使用非
R1C1
样式的文本“
”]SMI数据”!C1:C60
”。使用Debug.Print或MsgBox查看公式字符串是否正确。要执行此操作,请声明一个字符串变量并将公式字符串分配给它,然后按照建议使用Debug.Print或MsgBox。OldSMIWB的值是多少?–MátéJuhász>>>>>>OldSMIWB的值很复杂,但OldSMIWB.name=“SMI(过量)库存回顾Q1'17-WK13-Mar 31.xlsx“您有.FormulaR1C1,但在此处使用非R1C1样式的文本”]SMI数据“!C1:C60”——BruceWayne>>>>>>>>>C1=列1,而不是单元格C1。
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))"