我想从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