エクセルVBAで値のカウントをしたい
C列~AA列まで値が入っています
1行目にはタイトル
2行目からそれぞれ値が入っており、終了行は毎回ランダムです
各列毎に値の合計と1以上の値の合計数を表示するために下記のマクロを使用しているのですが、もっとスマートな方法は無いでしょうか?
現在のマクロだとマクロ行数がとても多いものになっています。
Sub Count()
With Range("C2")
.End(xlDown).Offset(1, 0) = _
"=SUM(" & Range(.Address, .End(xlDown)).Address(False, False) & ")"
End With
'本当はCの最終行に直接COUNTIFを書き込みたいが、他のセルを使用しないと0になる
Range("A1") = "=COUNTIF(C2:C10000,"">=1"")"
Range("A1").Select
Selection.Copy
Range("C1").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CommandBars("Stop Recording").Visible = False
With Range("D2")
.End(xlDown).Offset(1, 0) = _
"=SUM(" & Range(.Address, .End(xlDown)).Address(False, False) & ")"
End With
Range("A1") = "=COUNTIF(D2:D10000,"">=1"")"
Range("A1").Select
Selection.Copy
Range("D1").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CommandBars("Stop Recording").Visible = False
'以降AAまでセルの位置を変えた同一マクロを繰り返す
End Sub
お礼
お返事ありがとうございました。私には難しい・・ですけど分かるまで参考にさせていただきます!