- ベストアンサー
空白セルを非表示に
A1:B50の範囲にデータが入っています。A1:A50までに空白のセルがあれば、その行を非表示にするマクロを組みました。 Dim rw As Integer Application.ScreenUpdating = False For rw = 1 To 50 If Range("A" & rw) = "" Then Rows(rw).EntireRow.Hidden = True End If Next Application.ScreenUpdating = True これをA1:B50の範囲でどちらか入っているデータの多い方に合わせて非表示にするときはどうなるのでしょうか。説明がヘタですみません・・・ たとえばデータの入っているセルが、 A列がA1:A10まで、B列がB1:B:15までで以下空白の場合、今のマクロではA列でしか空白を判定しませんよね?なのでA11以下は空白にされてしまい、B12:B15までのデータも一緒に非表示されてしまいます。 どうしたらよいか教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>A1:B50の範囲でどちらか入っているデータの多い方に合わせて 私も意味がわかりません。 わからないというより、むしろ 列の空白以外のセル数を数えて比較するのは、出来ますが、社会経験からして、そういうニーズは考えにくいが。 ーー 同行でA列またはB列の両方が空白の場合は、その行を削除したい、じゃないの。 それならANDを挟んで IF Range("A" & rw) = "" AND Range("B" & rw) = "" ・ ですむだけのはなしでは。
その他の回答 (2)
- ASIMOV
- ベストアンサー率41% (982/2351)
>If Range("A" & rw) = "" Then ↓ If Range("A" & rw) = "" and Range("B" & rw) = "" Then で、どうでしょう
お礼
解決しました。本当にありがとうございます。
- mt2008
- ベストアンサー率52% (885/1701)
「A1:B50の範囲でどちらか入っているデータの多い方に合わせて非表示にする」の意味がわかりませんが、要するにA列、B列共に空白なら非表示にするということですか? それでしたら、A列と同様に空白かどうかを調べ、どちらも空白の時だけその行を非表示にするだけでは?
お礼
分かりにくい質問ですみません。解決しました。
お礼
うまく説明できなくてすみません。 同行でA列またはB列の両方が空白の場合は、その行を削除したい という意味でした。 ANDを挟むやり方も知りませんでした。ありがとうございました。