[[20061004161743]] 『条件に合わない行をマクロを使って削除』(akimama) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件に合わない行をマクロを使って削除』(akimama)

 よろしくお願いします。

 1000件近くあるデータを、必要行だけ取り出したいのですが
 A列の値を検査し、必要なら次の行へ、不必要なら行ごと削除、
 というようにマクロで処理したいと思っています。

    Dim i As Integer  ---> カウンタ

    i = 2 ---> 1行目は項目名が入っているので2行目からスタート

    If 【不要なら】Then 
        Rows(i & ":" & i).Select ---> 行を選択
        Selection.Delete Shift:=xlUp ---> 削除
    Else
        i = i + 1 ---> 必要なら削除せず次の行へ
    End If

 というところまではなんとかやりましたが
 for文でセルの値が空になるまで繰り返したいのですが
 どのように書けばいいのか教えて下さい。

 ちなみにこのマクロには他の処理をどんどん加える予定なので
 フィルタで絞って削除等の手作業は使えません。

 明日、レスを確認させていただきますので
 よろしければ明日もお付き合い下さい。

 その書き方だとDo Loopの方が良いのでは?

 例:
 Sub sample1()
 Dim i As Long
 i = 2
 Do While Cells(i,"a") <> ""
   If Cells(i,"a").Value = "それ" Then
      Rows(i).Delete
   Else
      i = i + 1
   End If
 Loop
 End Sub
 (seiya)

 ↓こちらが応用出来るかもしれません。
[[20060831181930]]『A列のセルがブランクであれば行ごと削除』(mutsu)
(純丸)(o^-')b


 >ちなみにこのマクロには他の処理をどんどん加える予定なので
 とあるので AdvancedFilterで処理してみました
 削除するシート Sheet1
 範囲がわからないのでA・B列でしています。
 Sheet2を作業用シートとして使用しています。

 Sub Test()
 Dim myRng1 As Range
 Dim myRng2 As Range
 Dim myRng3 As Range
 Dim myShi1 As Worksheet
 Dim myShi2 As Worksheet

 Set myShi1 = Worksheets("Sheet1")
 Set myShi2 = Worksheets("Sheet2")
 myShi2.Cells.ClearContents

 With myShi1
    Set myRng1 = .Range(.Range("A1"), .Range("A65536").End(xlUp).Offset(0, 1))
    Set myRng2 = myShi2.Range("A1:A2")
    myShi2.Range("A1").Value = .Range("A1").Value
 End With

 myShi2.Range("A2").Value = "'<>" & "不要データ"

 myRng1.AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=myRng2, CopyToRange:=myShi2.Range("A4")

 myRng1.ClearContents
 With myShi2
    Set myRng3 = .Range(.Range("A4"), _
        .Range("A65536").End(xlUp).Offset(0, 1))
 End With

 myRng3.Copy myShi1.Range("A1")
 myShi2.Cells.ClearContents

 End Sub

 (MM)


 こんばんは
 MMさんのコードはDeleteってどこにも無いんですけど間違いではないですか?
 どこで削除してるんですかね〜??


 皆様ありがとうございました。
 Do Whileですっきりと処理できました。
 またお願いします。(akimama)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.