我想在 VBA 上做的是只選擇四個最近的資料條目并將它們加在一起并將結果放在第四個資料條目的右側,當輸入接下來的四個資料條目時,我希望公式只添加這些條目和輸入結果在最后一個條目的右側。有人能告訴我我哪里出錯了嗎!
Private Sub CommandButton3_Click()
Dim wks As Worksheet
Dim addnew As Range
Set wks = Sheet2
Dim x
x = wks.Range("G2").End(xlDown).Value wks.Range("G2").End(xlDown).Offset(-1, 0).Value wks.Range("G2").End(xlDown).Offset(-2, 0).Value wks.Range("G2").End(xlDown).Offset(-3, 0).Value
Set addnew = wks.Range("H65356").End(xlUp).Offset(1, 0)
addnew.Offset(3, 0).Value = x

uj5u.com熱心網友回復:
Shane,如果我沒聽錯的話,你只想得到一個由四行組成的范圍的總和。這可以像這樣輕松完成:
假設 cell 中有你的求和公式H5;
選擇范圍H2:H5,
復制,
select range of H6 to H9(or to H13, or H17。只要確保你選擇的范圍是 4 行或 4s 的倍數),
和粘貼。就這樣。
uj5u.com熱心網友回復:
從表面上看,您的代碼運行良好。
一個問題是第一次使用將寫入第 1 行(不在 G 列中最后一個“活動”行旁邊)。
下面是一種可以滿足您的需求并避免該問題的方法。
注意:
o 一般來說,最好使用作業表名稱(而不是作業表代碼名稱)。
o 下面的代碼假設代碼名為“Sheet2”的作業表也被命名為“Sheet2”
Private Sub CommandButton3_Click()
Dim rgColGLast As Range
''' Get last 'active' (i.e. non-empty) cell in Column G
''' o If the target sheet isn't named Sheet2: Amend the line below to the correct name.
''' o If you need to use code name, change the line to 'With Sheet2.Columns("G")'
With Worksheets("Sheet2").Columns("G")
Set rgColGLast = .Cells(.Cells.Count).End(xlUp)
End With
''' Put the sum of the last four cells to column H (beside last cell in G)
rgColGLast.Offset(0, 1) = WorksheetFunction.Sum(Range(rgColGLast, rgColGLast.Offset(-3)))
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/353771.html
