簡體   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