【发布时间】:2016-12-14 21:30:15
【问题描述】:
我不太清楚 Excel VBA 中的语法错误是什么,我看到的错误是:“运行时错误 1004:应用程序定义或对象定义错误”
Sheets("Totals").Select
x = Range("A139").Activate
Range("E139:AB166").Formula = "=INDEX(""Model""!$A$3:$Z$1000,MATCH($" & x & ",""Model""!$A$3:$A$1000,0),MATCH(E$3,""Model""!$A$3:$Z$3,0))"
我正在尝试使用索引匹配匹配公式,其中索引引用是文件中的另一个工作表。我正在尝试在 E139:AB166 范围内填充公式,这样 x 变量被锁定到 A 列,最后一个匹配函数被锁定在第三行 (E$3)。
x = Range("A139").Activate
这行代码应该强制将光标移到“模型”工作表中的该单元格。 “模型”是文件中工作表的名称。我认为“”是必要的,以提醒 vba 该字符串指的是工作表名称。 如果工作表名称由两个字符串组成,例如“模型 1”,该怎么办。那么语法是什么?
""Model 1""!A3
'x' 是添加新数据的单元格,我写了一行代码来动态更改它。
x = Range("A" & insert_at).Activate
其中 insert_at 是等于最后一行的变量,在工作表中不为空,+ 1。
insert_at = lastRow + 1
因此,我们的想法是将“模型”工作表中的其他数据动态添加到“总计”工作表中任何现有数据下方的当前工作表“总计”中。
感谢您对此提供的任何帮助。
谢谢!
【问题讨论】:
-
双引号。如果您需要将报价显示为文本,请改用 Chr(34)。喜欢
Chr(34) & "Model" & Chr(34)而不是""Model"" -
@OAK 是
x假设是 A 列中的不同行号? -
替代@Moacir 的建议,您可以将引号加倍以将它们用作文字
"字符。例如,"""Model"""- 外引号是字符串分隔符,而单词Model前后的""表示文字"。 -
第二行是什么意思???
x = Range("A139").Activate -
因为
Model是一个工作表名称(我希望如此)它不需要"",只需要最后的!,所以你的公式应该是:"=INDEX(Model!$A$3:$Z$1000,MATCH($" & x & ",Model!$A$3:$A$1000,0),MATCH(E$3,Model!$A$3:$Z$3,0))"。如果你能告诉我们x应该是什么???