Board logo

標題: 如何在VBA中寫入EXCEL公式? [打印本頁]

作者: mnsmrtl    時間: 2010-8-18 17:46     標題: 如何在VBA中寫入EXCEL公式?

如題,我想利用VBA在儲存格中寫入公式,如=VLOOKUP(A3,SHEET1!A:M,3,FALSE)
但由於A3中的3,想以變數代入
所以我是這樣寫的:
Do while CONDITION1
  Sheet2.Cell(x,"A")="=VLOOKUP(A" & X & ",DDE!A:M,3,FALSE)"
loop
結果偵錯卻說必須是陳述式結尾,請問怎麼寫比較好?請先進指點一二~感謝
作者: Hsieh    時間: 2010-8-18 18:36

Sheet2.Cell(x,"A")="=VLOOKUP(A" & X & ",DDE!A:M,3,FALSE)"
作者: solely    時間: 2010-8-18 20:43

Sheet2.Cell(x,"A")="=VLOOKUP(A" & X & ",DDE!A:M,3,FALSE)"
Hsieh 發表於 2010-8-18 18:36


等號兩邊都是Sheet2!A,不是會造成循環參照?!
作者: kimbal    時間: 2010-8-18 21:39

回復 3# solely


    會的, 應該是樓主自行解決後沒回來了
作者: Hsieh    時間: 2010-8-18 21:40

回復 3# solely
那就看你的公式到底是要做怎樣參照
這只針對你語法錯誤做解答
你的A2公式是要參照A?
?是你要知道的變數帶入
作者: mnsmrtl    時間: 2010-8-18 22:26

本帖最後由 mnsmrtl 於 2010-8-18 22:33 編輯

不知道是不是不能打太長…
.Cells(x,4)="=if(vlookup(A" & x & ",DDE!$A: $M,4,false)=vlookup(A" & x & ",DDE!$A: $M,9,false),"不破",
(vlookup(A" & x & ",DDE!$A: $M,9,false)/vlookup(A" & x & ",DDE!$A: $M,3,false)-1)*100"
我是寫成這樣,它回覆訊息是「編繹錯誤,必須是陳述式結尾」,如果直接key在儲存格應該是:
=if(vlookup(a3,DDE!$A: $M,4,false)=vlookup(A3,DDE!$A: $M,9,false),"不破",
(vlookup(A3 ,DDE!$A: $M,9,false)/vlookup(A3,DDE!$A: $M,3,false)-1)*100)
反白的地方在「"不破"」這裡…
不知道是公式本身有錯,還是在vba寫的時候弄錯了…

感謝各位幫忙,小弟已經找到問題了,在「"不破"」處必須用""不破""才行,已經解決了^^~不勝感激^^
作者: Hsieh    時間: 2010-8-18 23:32

本帖最後由 Hsieh 於 2010-8-18 23:37 編輯

回復 6# mnsmrtl


    錄製一個有包含"的公式就知道問題出在哪裡了
"=if(vlookup(A" & x & ",DDE!$A: $M,4,false)=vlookup(A" & x & ",DDE!$A: $M,9,false),""不破"",(vlookup(A" & x & ",DDE!$A: $M,9,false)/vlookup(A" & x & ",DDE!$A: $M,3,false)-1)*100"




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)