我想從K2列開始到最後一個使用的單元格列「K」列中的第3行。請注意,列「K」中使用的數據或單元格會有所不同。在列宏中添加第3行VBA
我需要一個宏來總結每個第3行直到最後一行使用的值,並在「M1」中顯示Total。
我附加了一些示例值的快照以及我希望最終結果如何。
我想從K2列開始到最後一個使用的單元格列「K」列中的第3行。請注意,列「K」中使用的數據或單元格會有所不同。在列宏中添加第3行VBA
我需要一個宏來總結每個第3行直到最後一行使用的值,並在「M1」中顯示Total。
我附加了一些示例值的快照以及我希望最終結果如何。
Howdee湯姆 - 這應該爲你做的伎倆。
Sub Sum_Every_Third()
Dim sht As Worksheet
Dim lastRow As Long, amount As Long
Set sht = Worksheets("Sheet1") 'Be sure to change to your correct sheet name
lastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row
amount = 0
For i = 2 To lastRow
If Cells(i, 13).Offset(-1, 0).Row Mod 3 = 0 Then ' Make sure you change 13 to your column number
amount = amount + Cells(i, 13).Value
End If
Next i
MsgBox amount
End Sub
謝謝Wolfie和Clouse24都按需要工作!非常感謝傢伙! – Tom
短和緩慢(經測試並在Excel它只能作爲陣列式):
[M1] = [SUM(IF(MOD(ROW(K:K),3)=1,K:K))]
或更長一點,通過限制範圍:
[M1] = Evaluate(Replace("SUM(K2:K9*(MOD(ROW(2:9),3)=1))", 9, [K1].End(xlDown).Row))
該子應實現你的總結,查看評論詳情
Sub dosum()
' Get last row
Dim lastrow As Long
lastrow = ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Cells.Count).Row
' Assign range object to data in column K
Dim myRange As Range
Set myRange = ActiveSheet.Range("K2:K" & lastrow)
' Sum every third item
Dim i As Long
Dim mySum As Double
mySum = 0
' Step through cells in range, 3 at a time
For i = 3 To myRange.Cells.Count Step 3
mySum = mySum + myRange.Cells(i).Value
Next I
' Put in cell
ActiveSheet.Range("M1").Value = mySum
End Sub
Wh到目前爲止你有沒有試過? – YowE3K
這也可以用公式完成。 –
我只是簡單的代碼來總結這些值。我試圖使用MOD公式,但我一直沒有成功。這裏是我現在有用於柱 「K」 的總和的代碼: 子Macro2() ' ' Macro2宏 ' ' 昏暗LASTROW只要 範圍( 「M1」)值=應用。 .Sum(範圍(「K2:K」和Lastrow)) End Sub – Tom