如何在另一个工作表上删除不符合条件的行


Excel 是一款强大的数据处理和分析应用程序,允许用户以各种方式编辑和分析数据。在处理大型数据集时,通常需要筛选并丢弃不满足指定条件的条目。虽然 Excel 具有内置的筛选功能,但基于另一个工作表的条件删除行需要更复杂的方法。

删除另一个工作表上不符合条件的行

在这里,我们将首先创建一个 VBA 模块,然后运行它来完成任务。让我们来看一个简单的流程,了解如何删除另一个工作表上不匹配条件的行。

步骤 1

考虑两个 Excel 工作表,在一个工作表上有一份项目列表,在另一个工作表上是条件。

首先,右键单击包含项目的工作表的表名,然后单击“查看代码”以打开 VBA 应用程序。

右键单击 > 查看代码。

步骤 2

然后单击“插入”,选择“模块”,并将下面的代码复制到文本框中。

插入 > 模块 > 复制。

示例

Sub DeleteRow()
Dim rng As Range
Dim Rng1 As Range, Rng2 As Range
Dim arr1 As Variant
Dim arr2 As Variant
Dim dic2 As Variant
Dim OutArr As Variant
xTitleId = "Delete Rows Matching"
Set Rng1 = Application.Selection
Set Rng1 = Application.InputBox("Range1 :", xTitleId, Rng1.Address, Type:=8)
Set Rng2 = Application.InputBox("Range2:", xTitleId, Type:=8)
Set Rng1 = Rng1.Columns(1)
Set Rng2 = Rng2.Columns(1)
Set dic2 = CreateObject("Scripting.Dictionary")
arr1 = Rng1.Value
arr2 = Rng2.Value
For i = 1 To UBound(arr2, 1)
    xKey = arr2(i, 1)
    dic2(xKey) = ""
Next
Rng1.ClearContents
OutArr = Rng1.Value
xIndex = 1
For i = 1 To UBound(arr1, 1)
    xKey = arr1(i, 1)
    If dic2.Exists(xKey) Then
        OutArr(xIndex, 1) = xKey
        xIndex = xIndex + 1
    End If
Next
Rng1.Value = OutArr
End Sub

步骤 3

然后单击 F5 运行模块,选择项目范围,然后单击“确定”。

F5 > 选择范围 > 确定。

步骤 4

然后选择包含条件的单元格,然后单击“确定”以完成任务。

选择单元格 > 确定。

结论

在本教程中,我们使用了一个简单的示例来演示如何删除另一个工作表上不符合条件的行,以突出显示特定数据集。

更新于:2023年7月12日

265 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告