- ベストアンサー
行を非表示です
お願いします A列にはコード番号を表示しています 7行目から 102 104 107 110 101 105 順不順です End(xlUp))で最終行を取得します 上記中のR列に空白セルがある場合その行をEntireRow.Hidden = True で非表示としたいのです どうかご指導おねがいします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
当方も回答1さんと同様なことを感じます。 End(xlUp)やEntireRow.Hiddenなどを使える人が なせ、Ifの基本を??? と、まあ、それは置いといて。。。 '----------------------------------------------- Sub Test() Dim i As Long For i = 7 To Cells(Rows.Count, "A").End(xlUp).Row If Cells(i, "R").Value = "" Then Cells(i, "R").EntireRow.Hidden = True End If Next i End Sub '----------------------------------- 行削除は次のコードでもいい。 Rows(i).Hidden = True 以上です。
その他の回答 (3)
- watabe007
- ベストアンサー率62% (476/760)
全行表示にすれば良いのでは Sub 行再表示() Rows("1:" & Rows.Count).Hidden = False End Sub
- imogasi
- ベストアンサー率27% (4737/17069)
そこまで判っている(コードのカケラを書いている)なら、なぜ質問になるのかな。 もしつまずきがあるなら、その点挙げて置くべき。 R列の最終行から上に、各行でR列は空白か聞いて、空白なら行の非標示に設定しては。 既に非表示の行はあるという前提か。 行は非表示でも、For Nextで(削除と違って)全行捕まえられるのでは。だから下から処理しなくてもよいのかも。 テスト Sub test02() For i = 1 To 10 MsgBox i Next i End Sub 非標示行(があるが、そ)の行番号も表示する。
- watabe007
- ベストアンサー率62% (476/760)
最終行から見ていけば For i = 最終行 To 7 Step -1 If Cells(i, "R").Value = "" Then Rows(i).Hidden = True
補足
最終行を記述して以下のようにしました 出来ました 確認いただけたら幸いです 問題ないようでしたら閉じます よろしくお願いします Sub 行非表示() Application.ScreenUpdating = False 最終行 = Range("a10000").End(xlUp).Row For i = 最終行 To 7 Step -1 If Cells(i, "R").Value = 0 Then Rows(i).Hidden = True End If Next End Sub Sub 行再表示() Application.ScreenUpdating = False 最終行 = Range("a10000").End(xlUp).Row For i = 最終行 To 7 Step -1 If Cells(i, "R").Value = 0 Then Rows(i).Hidden = false End If Next End Sub
補足
imogasi 様 ありがとうございます すみません A列にはコード番号 b列には現場名 cは工期 dは請負額 EからQまではその工事の科目ごとの経費が記入され最後のR列で その工事経費計が表示されます 工事によっては発生していない経費があるため、R列の合計がないです その経費合計は、時々表示するためR列のない工事名を非表示にしたか ったためです。 説明不足すいません