Note: The other languages of the website are Google-translated. Back to English

如何在Excel中根據單元格值刪除行?

要基於Excel中的單元格值快速刪除或刪除多行,您可能需要先選擇包含特定單元格值的整行,然後再刪除它們。 似乎沒有一種快速的方法來刪除基於單元格值的行,而是使用VBA代碼。 這裡有一些快速技巧可以幫助您。


使用查找和替換功能根據單元格值刪除行

在Excel中,您可以應用功能強大的“查找和替換”功能輕鬆地基於某個單元格值刪除行。 請執行以下操作:

1。 選擇要根據某些單元格值刪除行的範圍,然後按並打開“查找和替換”對話框 Ctrl + F 鍵同時。

2。 在“查找和替換”對話框中,請輸入特定的單元格值(在本例中,我們輸入 ) 進入 Find what 框中,然後單擊 Find All 按鈕。 請參閱下面的第一個屏幕截圖:

3。 在“查找和替換”對話框的底部選擇所有搜索結果,然後關閉此對話框。 (備註:您可以選擇搜索結果之一,然後 Ctrl + A 鍵以選擇所有找到的結果。 請參閱上面的第二個屏幕截圖。)
然後您可以看到所有包含特定值的單元格都被選中。

4。 繼續右鍵單擊所選單元格,然後選擇 Delete 從右鍵單擊菜單中。 然後檢查 Entire row 在彈出的刪除對話框中選擇選項,然後單擊 OK 按鈕。 現在,您將看到所有包含特定值的單元格都被刪除了。 查看以下屏幕截圖:

然後已經基於該特定值刪除了整行。


使用VBA代碼根據單元格值刪除行

使用以下VBA代碼,您可以快速刪除具有某些單元格值的行,請按照以下步驟操作:

1。 按 Alt + F11 同時打開鑰匙 Microsoft Visual Basic for applications 窗口,

2。 點擊 Insert > Module,然後將以下代碼輸入到模塊中:

VBA:根據單元格值刪除整個行

Sub DeleteRows()
'Updateby20211217
Dim rng As Range
Dim InputRng As Range
Dim DeleteRng As Range
Dim DeleteStr As String
Dim xTitleId As String
Dim xArr
Dim xF As Integer
Dim xWSh As Worksheet
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, rng.Address, Type:=8)
If InputRng Is Nothing Then Exit Sub
DeleteStr = Application.InputBox("Delete Text", xTitleId, Type:=2)
Set xWSh = InputRng.Worksheet
For Each rng In InputRng
    If rng.Value = DeleteStr Then
        If DeleteRng Is Nothing Then
            Set DeleteRng = rng
        Else
            Set DeleteRng = Application.Union(DeleteRng, rng)
            Set DeleteRng = DeleteRng.EntireRow
        End If
    End If
Next
xArr = Split(DeleteRng.AddressLocal, ",")
DeleteRng.Select
DeleteRng.Delete
For xF = UBound(xArr) To 0 Step -1
    Set DeleteRng = xWSh.Range(xArr(xF))
    DeleteRng.Delete
Next
End Sub

3。 然後點擊 Run 按鈕運行代碼。

4。 在彈出的對話框中,請選擇要根據特定值刪除行的範圍,然後點擊 OK 按鈕。

5。 在另一個對話框中,請輸入您要刪除的行所基於的特定值,然後單擊 OK 按鈕。 看截圖:

然後您將看到已經基於指定的值刪除了整個行。


使用Kutools for Excel刪除基於一個或兩個單元格值的行

如果你已經安裝 Kutools for Excel,其 Select Specific Cells 功能可以幫助您快速刪除具有特定值的行。 請執行以下操作:

Excel的Kutools - 包括 300 多個方便的 Excel 工具。 全功能免費試用 30-天,無需信用卡! 立即行動吧!

1。 選擇要根據特定值刪除行的範圍,然後單擊 Kutools > Select > Select Specific Cells。 看截圖:

2。 在打開的“選擇指定的單元格”對話框中,請檢查 Entire row 選項,選擇 Contains Specific type 下拉列表,在右框中輸入指定的值,然後單擊 Ok 按鈕(請參見上面的屏幕截圖)。
應用此功能後,將彈出一個對話框,顯示根據指定條件找到了多少個單元格。 請點擊 OK 按鈕將其關閉。

3。 現在,選擇具有特定值的整個行。 請右鍵點擊選中的行,然後點擊 Delete 從右鍵單擊菜單中。 請參見下面的屏幕截圖:

備註:這 Select Specific Cells 功能支持刪除一個或兩個特定值的行。 要基於兩個指定值刪除行,請在 Specific type “選擇特定單元格”對話框的“部分”部分,如以下屏幕截圖所示:

Excel的Kutools - 包括 300 多個方便的 Excel 工具。 全功能免費試用 30-天,無需信用卡! 立即行動吧!


使用Kutools for Excel刪除基於多個單元格值的行

在某些情況下,您可能需要從Excel中的另一列/列表中刪除基於多個單元格值的行。 在這裡我將介紹 Kutools for Excel's Select Same & Different Cells 輕鬆解決問題的功能。

Excel的Kutools - 包括 300 多個方便的 Excel 工具。 全功能免費試用 30-天,無需信用卡! 立即行動吧!

1。 點擊 Kutools > Select > Select Same & Different Cells 打開“選擇相同和不同的單元格”對話框。

2。 在開幕 Select Same & Different Cells 對話框,請執行以下操作(請參見屏幕截圖):

(1)在 Find values in 框,請選擇您將在其中找到某些值的列;
(2)在 According to 框,請選擇具有多個值的列/列表,您將基於這些列/列表刪除行;
(3)在 Based on 部分,請檢查 Each row 選項;
(4)在 Find 部分,請檢查 Same Values 選項;
(5)檢查 Select entire rows 打開對話框底部的選項。
備註:如果兩個指定的列包含相同的標題,請檢查 My data has headers 選項。

3。 點擊 Ok 按鈕以應用此實用程序。 然後出現一個對話框,顯示已選擇多少行。 只需點擊 OK 按鈕將其關閉。

然後,已選擇所有包含指定列表中的值的行。

4。 點擊 Home > Delete > Delete Sheet Rows 刪除所有選定的行。


演示:根據Excel中的一個或多個單元格值刪除行


Excel的Kutools 包含 300 多種 Excel 便捷工具,30 天內免費試用,無限制。 立即下載並免費試用!

最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (39)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
極好的! 這是一種享受,我稍微改變了它以適應我需要的東西,但純粹是天才。 哦 VBA 版本。
網站主持人對此評論進行了最小化
有什麼方法可以修改 If (cell.Value) = "Apple" 以包含多個值?
網站主持人對此評論進行了最小化
Bobby,試試這個,它應該得到你想要的: If (cell.Value) = "Apple" OR (cell.Value) = "Monday"
網站主持人對此評論進行了最小化
無論如何要讓值識別一個值,無論是 > 還是 = 到某個值?
網站主持人對此評論進行了最小化
嘿 - 非常感謝你的劇本。 我想知道您是否可以使用通配符,以便您可以選擇單元格中匹配的任何內容而不是特定項目? 我試過使用 ** 通配符,但它似乎沒有做任何事情。 這是我所擁有的: Sub Delete_Rows() Dim rng As Range, cell As Range, del As Range Set rng = Intersect(Range("B6:B20"), ActiveSheet.UsedRange) For Each cell In rng If cell.Value Like "*WORDTODELETE*" _ Then If del Is Nothing Then Set del = cell Else: Set del = Union(del, cell) End If End If Next cell On Error Resume Next del.EntireRow.Delete End Sub
網站主持人對此評論進行了最小化
衷心的感謝 - 當營銷人員嘗試編寫代碼時總是很有趣,而且這些信息非常有幫助。 我無法讓代碼跨越多個列(“AA2:AA3000”有效,“AB2:AB3000”有效,但“AA2:AB3000”無效。沒有驚天動地的 Kaboom - 它什麼也沒做。我'已經通過依次運行幾個宏來解決它(我想是業餘的),但可能有一種更優雅的方式。再次感謝您的幫助,Jim(紐約州梅爾維爾)
網站主持人對此評論進行了最小化
我得到:運行時錯誤'13':類型不匹配調試突出顯示 If (cell.Value) = "FALSE" _ Then 部分。 我完全迷失在 MVB 中,任何幫助將不勝感激。
網站主持人對此評論進行了最小化
假設我將下面的代碼放入刪除所有包含蘋果的行,但是我希望它在完成後繼續並刪除所有包含香蕉的行? 我試圖複製代碼,但它似乎在蘋果之後停止。 謝謝。 Sub Delete_Rows() Dim rng As Range, cell As Range, del As Range Set rng = Intersect(Range("A1:C20"), ActiveSheet.UsedRange) For Each cell In rng If (cell.Value) = "Apple" _ Then If del is Nothing Then Set del = cell Else: Set del = Union(del, cell) End If End If Next cell On Error Resume Next del.EntireRow.Delete End Sub
網站主持人對此評論進行了最小化
我只想說一聲謝謝。 這就像一個魅力。
網站主持人對此評論進行了最小化
絕對棒極了! 感謝分享!!!
網站主持人對此評論進行了最小化
謝謝,這太棒了! 快速評論,我嘗試了 excel 2010 中的查找和替換功能。為了選擇所有找到的結果,我必須使用 Ctrl + A 而不是 Alt + A。
網站主持人對此評論進行了最小化
嗨,請問刪除不包含“Apple”的行的最簡單方法是什麼? 謝謝
網站主持人對此評論進行了最小化
嗨,有什麼辦法可以寫它來刪除一行,但有 OR 異常? 即刪除重複的行,但忽略某個值。 我想刪除重複項,除非有問題的列包含空白 b/c,該列還沒有有效數據。 我像你一樣跑了,但我在有問題的列中刪除了帶有空白的行,所以我不能按原樣使用它。 謝謝
網站主持人對此評論進行了最小化
感謝您提供 VB 腳本。 我迫不及待想試試這個。 問題:是否在刪除列和/或複製到工作簿中的單獨選項卡之前標記要刪除的列? 此外,有沒有一種方法可以一次在多個工作簿/文件上運行此腳本?
網站主持人對此評論進行了最小化
謝謝。。對我很有幫助。。。
網站主持人對此評論進行了最小化
我想刪除 column1 = "Apple" AND column3 = "green" 的所有行。 請?
網站主持人對此評論進行了最小化
我不確定如何使用宏來做到這一點,但是一個可以很好地完成工作的選項是添加一個額外的列,測試一個列是“蘋果”,另一個是“綠色”,然後讓它給出了一個簡單的“是”或“否”值。 而不是使用上述任何一個選項來搜索值“yes”並根據該值而不是 2 個單獨的值刪除行。
網站主持人對此評論進行了最小化
我在一個文件中有一個商店列表。 我有一個返回數千行的報告。 商店編號始終在 A 列中。是否有代碼/宏可以搜索報告並從商店列表中刪除所有包含商店編號的列。 需要考慮 vlookup 和“Do While”。
網站主持人對此評論進行了最小化
您好,非常感謝您提供 VBA 代碼。 我有一個問題。 是否可以使代碼成為可以同時選擇多個單元格值進行刪除的方式? 例如同時選擇 Apple 和 Emily 並刪除它們? 我感謝您的工作並期待您的回复。 瓊·K
網站主持人對此評論進行了最小化
如何指定範圍 A3:D3000(即我不希望用戶選擇範圍)? 如何使刪除字符串成為單元格引用,例如。 G1?
網站主持人對此評論進行了最小化
是否可以比較兩列然後刪除? 如果單元格 A=x 和單元格 B=y 則在 A3:D3000 範圍內,然後刪除行?
網站主持人對此評論進行了最小化
真棒。 非常感謝。 :)
這裡還沒有評論
載入更多
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護