簡體   English   中英

復制 Excel 到 VBA 中的單元格公式

[英]Replicating Cell formula in Excel through VBA

我想在 VBA 的 C 列中創建 IF 公式。 但是,當我這樣做時,公式會顯示為使用單元格的值而不是單元格引用。 我想知道如何使用單元格引用:

[當運行 VBA 時,在單元格 C2 的 excel 表中讓公式說[=IF(B2>0,2,A2)]而不是[=IF(1>0,2,1] 。]

我要重新創建的工作表的圖片。公式在 c 列

Dim c As Range
Dim a As Integer
Dim b As Integer

'//loop it in column C
For Each c In Range(Range("C2"), Range("C2").End(xlDown))
    a = c.Offset(0, -1) '// Column B
    b = c.Offset(0, -2) '// Column A
    c.Formula = "=IF(" & b & ">0,2," & a & ")" '// same format as formula [=IF(B2>0,2,A2)]
   
Next

如果我理解正確:

Dim a As Range
Dim b As Range

Set b = c.Offset(0, -1) '// Column B
Set a = c.Offset(0, -2) '// Column A

c.Formula = "=IF(" & b.Address(False,False) & ">0,2," & a.Address(False,False) & ")"

但是您可以在不循環或使用Address的情況下完成此操作; Excel 將在公式填充到列中時更新相對引用。

With ActiveSheet
    Dim lastRow As Long
    lastRow = .Cells(.Rows.Count, "C").End(xlUp).Row

    .Range("C2:C" & lastRow).Formula = "=IF(B2>0,2,A2)"
End With

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM