gpt4 book ai didi

excel - Excel VBA中基于条件比较删除行

转载 作者:行者123 更新时间:2023-12-04 20:47:45 25 4
gpt4 key购买 nike

我正在尝试在 Excel 中的 VBA 中创建一个宏,如果它不包含在另一个工作表的范围中列出的值,它将删除 1 个表的整行。这是设置:

在工作表 1(库存数据)中,第 2 列中有一组值。

在工作表 2 (tech_translate) 中,第 1 列中还有一组值。

基本上,我希望发生以下情况:

检查库存数据第 2 列中所有单元格中的值,

将它们与 tech_translate 中第 1 列单元格中的值匹配,

如果 tech_translate 中存在匹配值,则对库存数据中的该行不执行任何操作,

如果 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

最佳答案

您不能直接将单元格与范围进行比较。

使用匹配功能:

If IsError(Application.Match(Cells(i,2), CompRow, 0)) Then
Rows(i & ":" & i).EntireRow.Delete
End If

关于excel - Excel VBA中基于条件比较删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6783554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com