【发布时间】:2011-07-21 22:26:33
【问题描述】:
我正在尝试在 Excel 中的 VBA 中创建一个宏,如果它不包含在另一个工作表的范围中列出的值,它将删除 1 个表的整个行。这是设置:
在工作表 1(库存数据)中,第 2 列中有一组值。
在工作表 2 (tech_translate) 中,第 1 列中还有一组值。
基本上,我希望发生以下情况:
检查库存数据第 2 列中所有单元格中的值,
将这些值与 tech_translate 中第 1 列单元格中的值匹配,
如果 tech_translate 中有匹配的值,则不对 inventory-data 中的该行执行任何操作,
如果 tech_translate 中没有匹配的值,则删除 inventory-data 中的整行。
我希望到目前为止这是有道理的。为了提供帮助,这是我当前的代码,它显示了我卡在哪里。我不断收到类型不匹配错误 - 我知道原因,但不知道如何修复它或我需要做什么才能使其正常工作。
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
【问题讨论】: