[[20090716225958]] 『行の削除』(絵癖瑠二千酸) ページの最後に飛ぶ

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

 

『行の削除』(絵癖瑠二千酸)

 以下のようなリストがあります。

    A   B
 1  コード 品名
 2  222 リンゴ
 3  333 ミカン
 4  444 トマト
 5  888 メロン

 コードが(333、444、888)の場合は該当行を削除。
 上記の場合、結果的に行2のリンゴが残ります。
 実際のリストは約3000行で、同一コード(同一品名)が
 多数あります。出来れば、コードが重複する行も削除したい。

 以上の処理をVBで行いたいのですが、過去ログで見つける
 ことができませんでした。よろしくお願いします。

 XP、エクセル2003です。

 フィルタオプションの設定が使えると思います。
	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]	[I]
[1]	コード	品名		コード	品名		コード	コード	コード
[2]	222	リンゴ		222	リンゴ		<>333	<>444	<>888
[3]	333	ミカン							
[4]	444	トマト							
[5]	888	メロン							
[6]	222	リンゴ							
[7]									
 G1:I2の様に設定をして
 フィルタオプションの設定で
 「重複するレコードは無視する」にチェックを入れて
 D1セルから書き出し。
 書いた条件(G1:I2の値)を削除。

 マクロにしたいなら、記録にとれば マクロになりますね。

 (HANA)

 C列を作業列にした場合の方法です。

 Sub sample()
    Dim rng As Range
    Set rng = Range("a2", Cells(Rows.Count, "a").End(xlUp))
    If rng.Row > 1 Then
       With rng.Offset(0, 2) 'C列を作業列で使用  尚、D列にしたいなら rng.Offset(0, 3)
          .Formula = "=if(or(a2=333,a2=444,a2=888,countif($a$2:a2,a2)>1),1,"""")"
          With .Offset(-1, 0).Resize(.Rows.Count + 1, 1)
          On Error Resume Next
             .SpecialCells(xlCellTypeFormulas, xlNumbers).EntireRow.Delete
          On Error GoTo 0
          End With
          .ClearContents
       End With
    End If
 End Sub

 ichinose

コメント返信:

[ 一覧(最新更新順) ]


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