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