返回列表 上一主題 發帖

[發問] 關於Range("A1").Formula等於空值會出現FALSE的問題(已解決)

[發問] 關於Range("A1").Formula等於空值會出現FALSE的問題(已解決)

本帖最後由 vpower 於 2011-5-25 08:39 編輯

Range("A1").Formula="=IF(B1="","",NOW())"

執行後A1會變成=IF(B1=",",NOW())

造成判斷錯誤,出現FALSE.

回復 1# vpower
可巨集錄製 在A1 輸入公式  再看看程式碼
Range("A1").Formula = "=IF(B1="""" ,"""",NOW())"

TOP

回復 2# GBKEE
    我實際錄製的巨集如下
   Range("G2").FormulaR1C1 = "=IF(D2="""","""",D2+TIME(0,5,0))"

    執行後,儲存格G2會變成=IF('D2'="","",'D2'+TIME(0,5,0))
    D2的前後會多出一個'
    儲存格狀態會顯示#NAME?

TOP

本帖最後由 GBKEE 於 2011-5-24 20:23 編輯

回復 3# vpower
幫你錄製了
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. ' 在 2011/5/24 錄製的巨集
  5. '
  6. '
  7. Range("G2").Select
  8. ActiveCell.FormulaR1C1 = "=IF(RC[-3]="""","""",RC[-3]+TIME(0,5,0))"
  9. End Sub
複製代碼

FormulaR1C1,    Formula 不一樣

TOP

回復 3# vpower

剛剛發現其實你用這樣下就不會有錯了 :

Range("G2").Formula = "=IF(D2="""","""",D2+TIME(0,5,0))"

這是因為 FormulaR1C1 右方的公式中必須要用 RxCx 的形式來表示儲存格的位址,
所以 D2 變成要用 R2C4 來表示.(然出來的結果會變成 $D$2)

而若想以相對位址來表示要用 R[2]C[4],
糟糕的是 Excel 又會自動以目前的儲存格位址去計算上述的相對位置, (結果會計算成 K4)
所以以 FormulaR1C1 來指定固定且不帶 $ 的位址會比用 Formula 來的複雜.

TOP

謝謝GBKEE版主和luhpro大大,問題依照你們所使用的方式都可以解決我的問題,感謝.

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題