在列macrosVBA中添加每第三行

我试图从K2开始到最后使用的单元格列“K”列中的每第三行。 请注意,列“K”中使用的数据或单元格会有所不同。

我需要一个macros来总结每个第三行的值,直到最后一行使用,并在“M1”中显示总计。

我附加了一些示例值的快照,以及我希望最终结果如何。

在这里输入图像说明

简短和慢(经过testing,在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)) 

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 

这个小组应该达到你的总结,详见评论

 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