ไปยังเนื้อหาหลัก

วิธีกรองรายการและลบแถวที่ซ่อนหรือมองเห็นได้ใน Excel

สำหรับรายการที่กรองคุณอาจต้องลบแถวที่ซ่อนอยู่หรือมองเห็นได้เพื่อเก็บเฉพาะข้อมูลที่เป็นประโยชน์ ในบทความนี้เราจะแสดงวิธีการลบแถวที่เหลือที่ซ่อนหรือมองเห็นได้ของรายการที่กรองใน Excel

ลบแถวที่ซ่อนอยู่ในแผ่นงานที่ใช้งานอยู่ด้วยรหัส VBA
ลบแถวที่มองเห็นได้ของรายการที่กรองโดยเลือกเซลล์ที่มองเห็นได้ทั้งหมด
ลบแถวที่ซ่อนหรือมองเห็นได้อย่างง่ายดายของรายการที่กรองด้วย Kutools for Excel


ลบแถวที่ซ่อนอยู่ในแผ่นงานที่ใช้งานอยู่ด้วยรหัส VBA

ส่วนนี้จะแสดงรหัส VBA เพื่อลบแถวที่ซ่อนอยู่ในแผ่นงานที่ใช้งานอยู่ กรุณาดำเนินการดังนี้

1. เปิดใช้งานแผ่นงานที่คุณต้องการลบแถวที่ซ่อนอยู่กด อื่น ๆ + F11 พร้อมกันเพื่อเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

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 จำนวนมากที่นี่เราขอแนะนำเครื่องมือที่มีประโยชน์ให้คุณ กับ ลบแถวและคอลัมน์ที่ซ่อน (มองเห็นได้) ประโยชน์ของ Kutools สำหรับ Excelคุณสามารถลบแถวที่ซ่อนอยู่ในช่วง / แผ่นงานที่เลือกแผ่นงานที่ใช้งานอยู่หรือแผ่นงานทั้งหมดใน Excel ได้อย่างง่ายดาย

ก่อนที่จะใช้ Kutools สำหรับ Excelโปรด ดาวน์โหลดและติดตั้งในตอนแรก.

1. หากคุณต้องการลบเฉพาะแถวที่ซ่อนอยู่หรือมองเห็นได้ของรายการที่กรองโปรดเลือกช่วงที่กรองด้วยตนเองจากนั้นคลิก Kutools > ลบ > ลบแถวและคอลัมน์ที่ซ่อน (มองเห็นได้). ดูภาพหน้าจอ:

2 ใน ลบแถวและคอลัมน์ที่ซ่อน (มองเห็นได้) กล่องโต้ตอบเก็บไฟล์ ในช่วงที่เลือก เลือกใน มองใน รายการแบบเลื่อนลง (คุณสามารถเลือกตัวเลือกอื่น ๆ ได้ตามต้องการ) ตรวจสอบไฟล์ แถว ตัวเลือกใน ประเภทการลบ และในส่วน ประเภทโดยละเอียด ตรวจสอบ แถวที่มองเห็นได้ or แถวที่ซ่อนอยู่ ตัวเลือกตามที่คุณต้องการ และสุดท้ายคลิก OK ปุ่ม

3. จากนั้นกล่องโต้ตอบจะปรากฏขึ้นเพื่อแจ้งจำนวนแถวที่ถูกลบไปแล้วโปรดคลิกที่ไฟล์ OK ปุ่ม

  หากคุณต้องการทดลองใช้ยูทิลิตีนี้ฟรี (30 วัน) กรุณาคลิกเพื่อดาวน์โหลดแล้วไปใช้การดำเนินการตามขั้นตอนข้างต้น


ลบแถวที่ซ่อนหรือมองเห็นได้ของรายการที่กรองด้วย Kutools for Excel

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
Comments (7)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi this VBA code is awesome useful.
This comment was minimized by the moderator on the site
Thanks for the info. This has been instructive. Please is there a way to filter and delete for specific numbers in rows of up to 1 million? Can the code above be modified to do so?
This comment was minimized by the moderator on the site
Hi,
Sorry did not test the code in such huge row data. Maybe you can make a copy of your data and test if the code can work.
This comment was minimized by the moderator on the site
VBA code to Delete hidden rows worked perfectly with no fiddling. THANK YOU!!
This comment was minimized by the moderator on the site
Feedback re: the macro for hidden row deletions - this takes too long to run on 900k rows to be useful. 2+ hours on an OC'd Threadripper 1950X and still running (had to end task). Any way to optimize it to use multiple cores or is this a VBA limitation?
This comment was minimized by the moderator on the site
Hi,
The code has been optimized. Please have a try. Thank you for your comment.

Sub RemoveHiddenRows()
Dim xFlag As Boolean
Dim xStr, xTemp As String
Dim xDiv, xMod As Long
Dim I, xCount, xRows As Long
Dim xRg, xCell, xDRg As Range
Dim xArr() As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
Set xRg = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
If xRg Is Nothing Then Exit Sub
xRows = xRg.Rows.Count
Set xRg = xRg(1)
xFlag = True
xTemp = ""
xCount = 0
For I = 1 To xRows
Set xCell = xRg.Offset(I - 1, 0)
Do While xFlag
If xCell.EntireRow.Hidden Then
xStr = xCell.Address
xFlag = False
Else
GoTo Ctn
End If
Loop
If xCell.EntireRow.Hidden Then
xTemp = xStr & "," & xCell.Address
End If
If Len(xTemp) > 171 Then
xCount = xCount + 1
ReDim Preserve xArr(1 To xCount)
xArr(xCount) = xStr
xStr = xCell.Address
Else
xStr = xTemp
End If
Ctn:
Next
xCount = xCount + 1
ReDim Preserve xArr(1 To xCount)
xArr(xCount) = xStr
For I = xCount To 1 Step -1
If I = 1 Then
xStr = Mid(xArr(I), InStr(xArr(I), ",") + 1, Len(xArr(I)) - InStr(xArr(I), ","))
Else
xStr = xArr(I)
End If
If xDRg Is Nothing Then
Set xDRg = Range(xStr)
Else
Set xDRg = Union(xDRg, Range(xStr))
End If
If (Len(xDRg.Address) >= 244) Or (xCount = 1) Then
xDRg.EntireRow.Delete
Set xDRg = Nothing
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
Awesome, thank you! Will review at my next opportunity / need for this and reply back.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations