首页 文章

excel vba - 语法错误

提问于
浏览
0

我无法弄清楚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

这行代码应该强制光标到“模型”工作表中的那个单元格 . 'Model'是文件中工作表的名称 . 我认为“”必须提醒vba该字符串是指工作表名称 . 如果工作表名称由两个字符串组成,那么“模型1”会怎样 . 那会是什么语法,这个?

""Model 1""!A3

'x'是添加新数据的单元格,我编写了一行代码来动态更改它 .

x = Range("A" & insert_at).Activate

其中insert_at是一个等于最后一行的变量,在工作表中非空,为1 .

insert_at = lastRow + 1

因此,我们的想法是将“模型”工作表中的其他数据动态添加到“总计”工作表中任何现有数据下面的当前工作表“总计”下 .

我很感激任何帮助 .

谢谢!

1 回答

  • 0

    在E139中键入正确的工作公式然后使用this little 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
    

    更快,更容易调试,更易读 .

相关问题