[英]excel vba - syntax error
我不太清楚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
因此,想法是将“模型”工作表中的其他数据动态添加到“总计”工作表中任何现有数据下方的当前工作表“总计”中。
感谢您的协助。
谢谢!
在E139中键入正确的工作公式,然后使用我曾经写过的这个小Sub ,将其变成vba可用的公式字符串。
Sub RngToVba(src As Range)
'writes the VBA code to re-create the formulae in given range
'by Patrick Honorez - www.idevlop.com
'usage: from debug window, type RngToVba [L14:R14]
' or RngToVba range("L14:R14")
Dim c As Range
For Each c In src
Debug.Print "range(""" & c.Address & """).formula = """ & _
Replace(c.Formula, """", """""") & """"""
Next c
End Sub
并且...看在上帝的份上,停止使用那些无用的select
和activate
。
Sheets("Totals").Range("E139:AB166").Formula = someString
更快,更容易调试且更具可读性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.