Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8590 / 13644 ツリー ←次へ | 前へ→

【32414】Findメソッドで検索範囲を指定するには はじめ 05/12/14(水) 11:58 質問[未読]
【32415】Re:Findメソッドで検索範囲を指定するには Statis 05/12/14(水) 12:14 回答[未読]
【32419】Re:Findメソッドで検索範囲を指定するには はじめ 05/12/14(水) 13:55 質問[未読]
【32420】Re:Findメソッドで検索範囲を指定するには awu 05/12/14(水) 15:56 発言[未読]
【32421】Re:Findメソッドで検索範囲を指定するには はじめ 05/12/14(水) 16:35 お礼[未読]

【32414】Findメソッドで検索範囲を指定するには
質問  はじめ  - 05/12/14(水) 11:58 -

引用なし
パスワード
   A列   B列
1162    2
2304    2
2312    2
2604    2
7408    6
504    
836    
842    
1126    

この表は、A列の値が『504』の行から下方向にB列が空欄になっています。
B列が空欄になる最初の行を探し出し、それ以降の行を全削除したいのです。
この表で行くと、A列の値が『504』から下方向の4行を削除するということです。
表は、B列が空欄になった行以降に値の入るセルは存在しないものとします。
表の行数は不確定で2行から200行くらいまでさまざまです。
renge"A1"がActiveの状態からマクロを始めたいのです。
アドバイスをよろしくお願い致します。

【32415】Re:Findメソッドで検索範囲を指定するには
回答  Statis  - 05/12/14(水) 12:14 -

引用なし
パスワード
   こんにちは
いろいろな方法がありますがわかりやすい方法です。

Sub test()
Dim RoA As Long, RoB As Long
RoA = Range("A65536").End(xlUp).Row
RoB = Range("B65536").End(xlUp).Offset(1).Row
If RoA > RoB Then
  Range(Cells(RoB, 1), Cells(RoA, 1)).ClearContents
End If
End Sub

【32419】Re:Findメソッドで検索範囲を指定するには
質問  はじめ  - 05/12/14(水) 13:55 -

引用なし
パスワード
   statisさま
回答ありがとうございました。
このままコードを書いて
A1をactiveにした状態で実行してみましたが、
何も起きませんでした・・・。

考えられる原因はなんでしょうか。

【32420】Re:Findメソッドで検索範囲を指定するには
発言  awu  - 05/12/14(水) 15:56 -

引用なし
パスワード
   > 考えられる原因はなんでしょうか。

見た目は、空白だが、スペースが入っているとか、計算式が、設定されていて
その演算結果が、長さ0の文字列("")になっていることが考えられます。

次のコードを実行すれば、どうなりますか。

Sub test()
Dim Rw As Long
For Rw = Range("A65536").End(xlUp).Row To 1 Step -1
  With Range("B" & Rw)
    If Trim(.Text) = "" Then
      .EntireRow.Delete
    Else
      Exit Sub
    End If
  End With
Next Rw
End Sub

【32421】Re:Findメソッドで検索範囲を指定するには
お礼  はじめ  - 05/12/14(水) 16:35 -

引用なし
パスワード
   awuさま

完璧に出来ました!!!

このコードの意味は良く(ほとんど)理解できませんが、
ステップインで動きを見ながら勉強したいと思います。

本当にどうもありがとうございました。

8590 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free