2017-08-10 84 views
0

我有一個插入一些公式的vba腳本。出於某種原因,它拒絕插入VLOOKUP函數;它給出了運行時錯誤1004:應用程序定義或對象定義的錯誤。插入公式導致運行時錯誤1004

我的代碼如下:

Worksheets("Sheet1").Cells(row, 16).Formula = "=vlookup(O" & row & ";Sheet2!$A$2:$H$250;5;FALSE)" 

我一直在嘗試各種變化找出是什麼觸發了錯誤代碼。如果我嘗試廢話公式

Worksheets("Sheet1").Cells(row, 16).Formula = "=vlookp(O1)" 

它不會生成錯誤並將公式放在相應的單元格中。如果我只更改一個字母,將vlookp(01)變成vlookup(01)會再次產生錯誤。

任何想法是怎麼回事,是什麼原因導致這個錯誤?

Txs! Bart

回答

3

您正在使用;作爲公式的分隔符,Excel中很英文爲主,並喜歡找公式中,

所以你的公式更改爲:

"=vlookup(O" & Row & ",Sheet2!$A$2:$H$250,5,FALSE)" 

或更改:

Worksheets("Sheet1").Cells(Row, 16).Formula 

到:

Worksheets("Sheet1").Cells(Row, 16).FormulaLocal 
+0

這解釋了爲什麼我在公式中看到了分號以及'.Formulalocal'的用途。做得好 – 2017-08-10 07:39:03

+0

@ThomasInzina歡迎回來,C#如何? –

+0

這不是......大聲笑我決定繼續編程愛好。感謝您提問 – 2017-08-10 07:43:15

3

用逗號替換公式中的分號。

Worksheets("Sheet1").Cells(Row, 16).Formula = "=VLOOKUP(O" & Row & ",Sheet2!$A$2:$H$250,5,FALSE)" 
+0

用幾秒鐘打我(+1);但我不得不輸入更多 –

+0

謝謝!這工作! –

0

沒有直接回答,而是一種方法來解決你的問題:
在單元格P2(或任何其他單元格)中手動輸入公式,然後按ctrl + G去調試窗口,並輸入print range("p2").formula
這應該給出Excel預計公式在VBA中看起來像什麼的精確想法。