ハマっている「お菓子」を教えて!

お世話になります。
添付した画像のような表が続いており、A列で「B」になっている行とそそれに付随する行を
空白行も含めVBAで非表示にしたいのですが上手くいきません。
(つまり画像の「B」を検索して13~24までを非表示にしたい)
これはどういったやり方でできるのでしょうか?よろしくお願いします

「行の非表示の条件について」の質問画像

A 回答 (2件)

こんにちは



>これはどういったやり方でできるのでしょうか?
ご説明にある通りに「B」を検索して、「B」ならその間を非表示にすればよろしいかと。

仮定として、A列の(添付図で)空白に見えるセルには何も入力がないものとしています。
また、最終行はE列で取得できるものと仮定しました。

Sub Sample00()
Dim endC As Range, startC As Range
'Rows.Hidden = False
Set endC = Cells(Rows.Count, 5).End(xlUp).Offset(1, -4)

While endC.Row > 5
Set startC = endC.End(xlUp)
If startC.Value = "B" Then
 Range(startC, endC.Offset(-1)).EntireRow.Hidden = True
End If
Set endC = startC
Wend
End Sub

※ 実行前にすでに非表示の行があって、それを表示してから処理する必要がある場合は
 'Rows.Hidden = False
を生かしてください。
    • good
    • 0
この回答へのお礼

できましたありがとうございます!

お礼日時:2020/05/18 16:39

こんにちは!



すでに的確な回答が出ていますので、参考程度で・・・
お示しの画像のように各塊りの間には空白行があるという前提です。

Sub Sample1()
 Dim i As Long
 Dim myRng As Range
  For i = 5 To Cells(Rows.Count, "A").End(xlUp).Row
   If Cells(i, "A") = "B" Then
    If myRng Is Nothing Then
     Set myRng = Cells(i, "A").CurrentRegion
    Else
     Set myRng = Union(myRng, Cells(i, "A").CurrentRegion)
    End If
   End If
  Next i
   If Not myRng Is Nothing Then
    myRng.EntireRow.Hidden = True
   End If
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

こちらもできました!参考にさせてもらいます!

お礼日時:2020/05/18 16:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報