2016-12-19 121 views
1

我一直有一個編譯錯誤: 預計:statemets 的結束而總是告訴我的代碼部份的一部分(「F1:H66」)VBA VLOOKUP公式編譯錯誤

Public Sub macro2() 
Application.ScreenUpdating = False 
Application.Calculation = xlCalculationManual 
Range("G31").Select 
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-4],Sheet2.Range("F1:H66"),3, False)" 
Application.Calculation = xlCalculationAutomatic 
Application.ScreenUpdating = True 
End Sub 
+1

錯誤實際上是對SO很容易看到這裏,看在公式文本顏色。它在「」之間是紅色的,在範圍上是黑色的,然後是紅色。在大多數IDE中(也許都是),文本的顏色變化是您應該仔細查看的內容。這可能是正確的,但大多數時候顏色變化很糟糕。在VBA編輯器中,不幸的是沒有這樣的奢侈品,但SO有它。 – Andreas

+0

謝謝......這就是爲什麼我問問題在哪裏,因爲我沒有在VBA中遇到過,我發現VBA編輯器只能在關鍵字中改變顏色。記事本++可以解決這個問題。 –

回答

0

使用Chr(34)",它更易於閱讀。

其次,儘量避免使用SelectActiveCell,而是可以使用直接的範圍方法,請參見下面的代碼:

Range("G31").FormulaR1C1 = "=VLOOKUP(RC[-4],Sheet2.Range(" & Chr(34) & "F1:H66" & Chr(34) & "),3, False)" 
+0

可以勇敢下來解釋一下爲什麼? –

2

雙您當他們出現雙引號字符串中:

"=VLOOKUP(RC[-4],Sheet2.Range(""F1:H66""),3, False)"

------------------------------^--------^----------

0

嘗試使用此代碼。您可以根據需要調整單元格值。

NewValue = Application.WorksheetFunction.VLookup(Range("G31"), Range("F1:H66"), 3, False ) 
0

另一種方法是使用
"=VLOOKUP(RC[-4],Sheet2!R1C6:R66C8,3, False)"

這將給公式:=VLOOKUP(C31,Sheet2!$F$1:$H$66,3, FALSE)