[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『可視セルのカウント方法』(ゆうみん)
早速質問させていただきます。
G列には名前が並んでいます(1行目はタイトルです)。都合で非表示にしている行もあります。この非表示の部分は対象にせずG列の名前が書いてある最後の行の一つ下のセルに名前のカウント数を表示したいのですが、どうすればいいか具体的にご教授おねがいします。
検索ぐらいしてください。 こちらのマクロを変更すればいいと思います。(wizik) [[20031004125333]] 『表示されたセルだけの合計』(どんぐり)
一応、検索でそちらを見てはいました。で、以下のように書いてみたのですが上手くいきません。
Dim i As Long
i = Range("G1").CurrentRegion.Rows.Count
Range("G" & i + 1).Formula = "=SUBTOTAL(3,G:G)-1"
VBAを始めて間もないので初歩的なミスが多いかと思いますが、よろしくお願いします。m(__)m
(ゆうみん)
>都合で非表示にしている行もあります。 これはオートフィルタで非表示にしているんですか? (wizik)
Dim myRange As Range
For Each myRange In Range("B:B") If myRange.Value = "0" Then myRange.EntireRow.Hidden = True End If Next myRange
>指定した値が含まれている行をhiddenで非表示にしています。 じゃあ、SUBTOTALではダメでしょう。
リンク先のケンさんのマクロを少し変更しました。 (wizik)
Function MYSUM(adr As Range) As Double Dim C As Range Dim tol As Double
Application.Volatile tol = 0
For Each C In adr If Not Rows(C.Row).Hidden And Not IsEmpty(C.Value) Then tol = tol + 1 Next MYSUM = tol End Function
Sub test()
lastrow = Cells(Rows.Count, 7).End(xlUp).Row
For i = 2 To lastrow
If Rows(i).Hidden = False Then n = n + 1
End If
Next
Cells(lastrow + 1, 7) = n
End Sub
なおさんのでいくと空白セルまでカウントされるので、その分を考慮する必要がありそうですね。 ※横やりではありませんので、ご気分を害されないようにm(._.)m ペコッ
Sub test() '変数宣言 Dim i As Long, n As Long, Lastrow As Long '定数宣言 Const MyC As Long = 7 '基準列(G) Const MyR As Long = 2 'カウント開始行(2)
Lastrow = Cells(Rows.Count, MyC).End(xlUp).Row For i = MyR To Lastrow If Rows(i).Hidden = False And Not IsEmpty(Cells(i, MyC).Value) Then n = n + 1 End If Next Cells(Lastrow + 1, MyC) = n End Sub
(川野鮎太郎)
(なお)です。
名前が並んでいます-----------
とありましたので、名前が連続している(空白セルがない)と思っていました。 空白がある場合は、 「 And Cells(i, 7) <> "" 」を追加すればOKかと。
Sub test()
lastrow = Cells(Rows.Count, 7).End(xlUp).Row
For i = 2 To lastrow
If Rows(i).Hidden = False And Cells(i, 7) <> "" Then n = n + 1
End If
Next
Cells(lastrow + 1, 7) = n
End Sub
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.