[英]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.