繁体   English   中英

Excel VBA-语法错误

[英]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 

并且...看在上帝的份上,停止使用那些无用的selectactivate

Sheets("Totals").Range("E139:AB166").Formula = someString

更快,更容易调试且更具可读性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM