K2から最後のセルまでを列 "K"で3行おきに合計しようとしています。列「K」で使用されるデータまたはセルは変化することに注意してください。列マクロ内のすべての3行目を追加する
最後の行まで3行おきに値を合計し、合計を「M1」に表示するにはマクロが必要です。
いくつかのサンプル値のスナップショットを添付し、最終結果をどのように見せたいかを付けました。
K2から最後のセルまでを列 "K"で3行おきに合計しようとしています。列「K」で使用されるデータまたはセルは変化することに注意してください。列マクロ内のすべての3行目を追加する
最後の行まで3行おきに値を合計し、合計を「M1」に表示するにはマクロが必要です。
いくつかのサンプル値のスナップショットを添付し、最終結果をどのように見せたいかを付けました。
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式を使用しようとしましたが、失敗しました。 サブMacro2では() 「 」Macro2ではマクロ 「 」 薄暗いLASTROW限り 範囲(「M1」)値=適用:ここで私は現在の列「K」の和を持っているコードであります.Sum(範囲( "K2:K"&ラストロー)) End Sub – Tom