如何在另一個工作表上刪除不符合條件的行


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 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告