2011-07-21 17 views
2

ExcelでVBAにマクロを作成しようとしていますが、別のシートの範囲にリストされている値が含まれていない場合は1テーブルの行全体が削除されます。ここでの設定は:シート1(インベントリデータ)においてExcel VBAで条件比較に基づいて行を削除する

、値のセットは、シート2(tech_translate)でカラム2

であり、列1の値のセットもあります。

基本的に、私は以下のことが起こるしたい:

が細胞内にある値に対して、それらを一致させる、インベントリー・データに2列にあるすべてのセルの値をチェックtech_translateの第1列の

一致する値がtech_translateであった場合、在庫データにその行に何もしない、

tech_translateで一致する値がない場合は、在庫データに行全体を削除します。

これまでのところ意味があることを願っています。助けになるために、ここに私が立ち往生している場所を示す私の現在のコードがあります。私は型の不一致のエラーが発生し続ける - 私は理由を知っているが、それを修正する方法やこれを動作させるために何をする必要があるのか​​分からない。

Sub deleteTechs() 

Dim LastRow As Long 
Dim CompRow As Range 
Dim i As Integer 

With Worksheets("tech_translate") 
    Set CompRow = .Range("a2", .Cells(.Rows.Count, "A").End(xlUp)) 
End With 

LastRow = [A65536].End(xlUp).Row 

For i = LastRow To 1 Step -1 
    If Cells(i, 2) <> CompRow.Cells Then Rows(i & ":" & i).EntireRow.Delete 
Next i 

End Sub 

答えて

1

セルをRangeと直接比較することはできません。

はmatch関数を使用します。

If IsError(Application.Match(Cells(i,2), CompRow, 0)) Then 
    Rows(i & ":" & i).EntireRow.Delete 
End If 
関連する問題