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

如何過濾列表並刪除Excel中其餘的隱藏行或可見行?

對於過濾列表,您可能需要刪除隱藏或可見行,以便僅保留有用數據。 在本文中,我們將向您展示刪除Excel中已過濾列表的其餘隱藏或可見行的方法。

使用VBA代碼刪除活動工作表中的隱藏行
通過選擇所有可見單元格刪除過濾列表的可見行
使用Kutools for Excel輕鬆刪除過濾列表的隱藏或可見行


使用VBA代碼刪除活動工作表中的隱藏行

本節將向您展示VBA代碼,以刪除活動工作表中的隱藏行。 請執行以下操作。

1.激活需要刪除隱藏行的工作表,然後按 其他 + F11 同時打開 Microsoft Visual Basic for Applications 窗口。

2.在“ Microsoft Visual Basic for Applications”窗口中,單擊“ 插入 > 模塊。 然後將下面的VBA代碼複製並粘貼到“模塊”窗口中。

VBA代碼:刪除隱藏的行

Sub RemoveHiddenRows()
	Dim xRow As Range
	Dim xRg As Range
	Dim xRows As Range
	On Error Resume Next
	Set xRows = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
	If xRows Is Nothing Then Exit Sub
		For Each xRow In xRows.Columns(1).Cells
			If xRow.EntireRow.Hidden Then
				If xRg Is Nothing Then
					Set xRg = xRow
				Else
					Set xRg = Union(xRg, xRow)
				End If
			End If
		Next
		If Not xRg Is Nothing Then
			MsgBox xRg.Count & " hidden rows have been deleted", , "Kutools for Excel"
			xRg.EntireRow.Delete
		Else
			MsgBox "No hidden rows found", , "Kutools for Excel"
		End If
	End Sub

3。 按 F5 鍵來運行代碼。 如果活動工作表中有隱藏行,則運行代碼後,將彈出一個對話框,告訴您已刪除了多少個隱藏行。 點擊 OK 按鈕刪除隱藏的行。 看截圖:

doc刪除休息1

否則,運行代碼後,您將獲得以下對話框。

doc刪除休息1

備註:上面的VBA代碼不僅可以刪除過濾列表的隱藏行,還可以刪除您之前手動隱藏的隱藏行。


通過選擇所有可見單元格功能刪除過濾列表的可見行

要刪除過濾列表的可見行,請執行以下操作。

1.選擇所有過濾出的行,然後按 F5 鍵打開 轉到 對話框,然後單擊 特別 按鈕。 看截圖:

doc刪除休息1

2。 在裡面 去特別 對話框,檢查 僅可見細胞 選項,然後單擊 OK 按鈕。

doc刪除休息1

3.現在,所有可見行均被選中,右鍵單擊所選內容,然後單擊“確定”。 刪除行.

doc刪除休息1

到目前為止,所有可見行均已從過濾列表中刪除。


使用Kutools for Excel輕鬆刪除過濾列表的隱藏或可見行

對於許多Excel用戶來說,以上兩種方法可能不是理想的解決方案,在這裡我們為您介紹一個方便的工具。 隨著 刪除隱藏(可見)行和列 的效用 Excel的Kutools,您可以輕鬆刪除Excel中所選範圍/工作表,活動工作表或所有工作表中的隱藏行。

申請前 Excel的Kutools首先下載並安裝.

1.如果您只想刪除過濾列表的隱藏或可見行,請手動選擇過濾範圍,然後單擊 庫工具 > 刪除 > 刪除隱藏(可見)行和列。 看截圖:

2。 在裡面 刪除隱藏(可見)行和列 對話框中,保留 在選定範圍內 選中 在看 下拉列表(您可以根據需要選擇其他選項),然後選中 在選項 刪除類型 部分,並在 詳細類型 部分,檢查 可見行 or 隱藏的行 您需要的選項。 最後點擊 OK 按鈕。

3.然後會彈出一個對話框,告訴您已刪除了多少行,請單擊 OK 按鈕。

  如果您想免費試用(30-day) 這個實用程序, 請點擊下載,然後按照上述步驟進行操作。


使用Kutools for Excel刪除過濾列表的隱藏或可見行


最佳辦公效率工具

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底部
按評論排序
留言 (7)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
反饋重新:隱藏行刪除的宏 - 這需要太長時間才能在 900k 行上運行以發揮作用。 在 OC'd Threadripper 2X 上運行 1950 多個小時並且仍在運行(必須結束任務)。 有什麼方法可以優化它以使用多個內核,或者這是 VBA 限制?
網站主持人對此評論進行了最小化
嗨,
代碼已經優化。 請試一試。 感謝您的評論。

子 RemoveHiddenRows()
將 xFlag 調暗為布爾值
將 xStr、xTemp 調暗為字符串
將 xDiv、xMod 調暗
昏暗我,xCount,xRows 一樣長
將 xRg、xCell、xDRg 調暗為範圍
將 xArr() 調暗為字符串
在錯誤恢復下一頁
Application.ScreenUpdating = False
Application.EnableEvents = False
設置 xRg = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
如果 xRg 什麼都不是,則退出 Sub
xRows = xRg.Rows.Count
設置 xRg = xRg(1)
xFlag = 真
xTemp = ""
x計數 = 0
對於 I = 1 到 xRows
設置 xCell = xRg.Offset(I - 1, 0)
邊做邊做 xFlag
如果 xCell.EntireRow.Hidden 然後
xStr = xCell.地址
xFlag = 假
其他
轉到 Ctn
如果結束
循環
如果 xCell.EntireRow.Hidden 然後
xTemp = xStr & "," & xCell.Address
如果結束
如果 Len(xTemp) > 171 那麼
xCount = xCount + 1
ReDim 保留 xArr(1 到 xCount)
xArr(xCount) = xStr
xStr = xCell.地址
其他
xStr = xTemp
如果結束
貨號:
下一頁
xCount = xCount + 1
ReDim 保留 xArr(1 到 xCount)
xArr(xCount) = xStr
對於 I = xCount 到 1 步 -1
如果我 = 1 那麼
xStr = Mid(xArr(I), InStr(xArr(I), ",") + 1, Len(xArr(I)) - InStr(xArr(I), ","))
其他
xStr = xArr(I)
如果結束
如果 xDRg 什麼都不是,那麼
設置 xDRg = Range(xStr)
其他
設置 xDRg = Union(xDRg, Range(xStr))
如果結束
如果 (Len(xDRg.Address) >= 244) 或 (xCount = 1) 那麼
xDRg.EntireRow.Delete
設置 xDRg = 無
如果結束
下一頁
Application.EnableEvents = True
Application.ScreenUpdating = True
END SUB
網站主持人對此評論進行了最小化
太棒了,謝謝你! 將在我下次有機會/需要時進行審查並回复。
網站主持人對此評論進行了最小化
刪除隱藏行的 VBA 代碼可以完美運行,無需任何操作。 謝謝你!!
網站主持人對此評論進行了最小化
謝謝(你的)信息。 這很有啟發性。 請問有沒有辦法過濾和刪除最多1萬行中的特定數字? 可以修改上面的代碼嗎?
網站主持人對此評論進行了最小化
嗨,
抱歉沒有在如此龐大的行數據中測試代碼。 也許您可以復制您的數據並測試代碼是否可以工作。
網站主持人對此評論進行了最小化
嗨,這個 VBA 代碼非常有用。
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

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