簡體   English   中英

使用activecell.offset減去

[英]substract using activecell.offset

我的最后一行是(315)-在下面的代碼中,我需要在最后一行中尋求幫助(我正在嘗試做(col H的總和)-(col J的總和)-通過在col k中使用activecell-offset

''Totals''
Range("K" & LastRow).Offset(5, 0).Formula = "=activecell.offset(0,-3)-activecell.offset(0-1)"

我不知道你的最后一行是如何變成315你有320的數據,但你正在尋找這個:

Range("K" & LastRow).Offset(5, 0).Value = ActiveCell.offset(0,-3) - ActiveCell.offset(0-1)
Range("K" & LastRow).Offset(5, 0).Formula = "=" & ActiveCell.Offset(0, -3).Address & "-" & ActiveCell.Offset(0 - 1).Address

這會起作用,但不是很漂亮。 另一種選擇是靜態VBA解決方案,例如Damian的答案。

此外,我建議您參考正確的工作簿和-sheet。 如果您要省略它,VBA代碼將始終引用活動工作簿/ -sheet,這是您經常不想要的。

例如

With Workbooks(REF).Sheets(REF)
     .Range("K" & LastRow).Offset(5, 0).Formula = "=" & ActiveCell.Offset(0, -3).Address & "-" & ActiveCell.Offset(0 - 1).Address
End With

緊接着,引用活動單元也很麻煩。 也許你最好提到更好定義的范圍,例如

With Workbooks(REF).Sheets(REF)
     .Range("K" & LastRow).Offset(5, 0).Formula = "=" & .Cells(LastRow + 4, "K").Address & "-" & .Cells(LastRow, "J").Offset(0 - 1).Address  'Ranges randomly chosen 
End With

編輯

公式是動態的。 換句話說,它們的結果會隨着它們所指的值/范圍而動態變化。 除非您編寫一個Worksheet_Change事件,否則如果您更改要計算總和的值,則下面的計算將不會更新。 但是,您並不總是需要計算是動態的,所以選擇您需要的。 我假設你的列有標題。

With Workbooks(REF).Sheets(REF)
    LastRow = .Cells(.Rows.Count, "K").End(xlUp).Row
    LROWJ = .Cells(.Rows.Count, "J").End(xlUp).Row
    LROWH = .Cells(.Rows.Count, "H").End(xlUp).Row
    .Range("K" & LastRow).Value = Application.Sum(.Range("H2:H" & LROWH)) - Application.Sum(.Range("J2:J" & LROWJ))
End With

暫無
暫無

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

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