Excel VBA &

2009-05-22 11:58 pm
假設:A1 至 A5 分別是 400, 200, 600, 300, 700

我寫了一個EXCEL VBA,內容如下:

Sub XX()
 Range("D1").Select
 ActiveCell.FormulaR1C1 = "=If(RC[-3] < 500, ""Over"",""Below"")"
End

Run完後,我Copy D1的公式至D2~D5

但顯是的結果是:D1~D5,全部是"Below";而不是預期的:"Below","Below","Over","Below","Over"!!

但當我分別在D1~D5,先後按<F2>,<Enter>後,結果又如預期一樣!

為何要按<F2>,<Enter>才OK?

但如不Run VBA,而改以平常輸入公式般來處理,就不會有上述”怪事”!

請指點!謝!

回答 (3)

2009-05-23 6:10 pm
✔ 最佳答案
工具 -- 選項 -- 計算 -- 手動 (改為自動)
或者是你的程式碼裡有類似的語法:
With Application
.Calculation = xlManual
把 ( .Calculation = xlManual)刪除便可

please try
2009-05-23 6:55 pm
主要不是vba或公式出問題, 祇是閣下的Excel系統已被設定為手動計算, 解決方法:
按 工具 >> 選項 >> 計算 >> 選 自動 >> 確定
2009-05-23 12:43 am
我按照你的說法做了一遍,沒有你說的情形出現。只是出現的是OVER , OVER, BELOW, OVER, BELOW

看看FORMAT CELLS是否有錯誤.....!
另你好像打錯了"=If(RC[-3] < 500, ""Over"",""Below"")"
我想應該是"=If(RC[-3] > 500, ""Over"",""Below"")"


收錄日期: 2021-04-27 16:25:46
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20090522000051KK00762

檢視 Wayback Machine 備份