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

วิธีกรองรายการและลบแถวที่ซ่อนหรือมองเห็นได้ใน 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 สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

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

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (7)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คำติชมเรื่องมาโครสำหรับการลบแถวที่ซ่อนอยู่ - ใช้เวลานานเกินไปในการเรียกใช้แถว 900k จึงจะมีประโยชน์ 2+ ชั่วโมงบน OC'd Threadripper 1950X และยังคงทำงานอยู่ (ต้องจบงาน) มีวิธีใดในการเพิ่มประสิทธิภาพเพื่อใช้หลายคอร์หรือเป็นข้อ จำกัด ของ VBA
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
รหัสได้รับการปรับให้เหมาะสม ได้โปรดลองดู ขอบคุณสำหรับความคิดเห็นของคุณ.

ย่อย RemoveHiddenRows()
Dim xFlag เป็นบูลีน
Dim xStr, xTemp เป็นสตริง
Dim xDiv, xMod ตราบใด
Dim I, xCount, xRows ตราบใด
Dim xRg, xCell, xDRg เป็นช่วง
Dim xArr() เป็นสตริง
เกี่ยวกับข้อผิดพลาดต่อไป
Application.ScreenUpdating = เท็จ
Application.EnableEvents = เท็จ
ตั้งค่า xRg = Intersect(ActiveSheet.Range("A:A")).EntireRow, ActiveSheet.UsedRange)
ถ้า xRg ไม่มีอะไร ให้ออกจาก Sub
xRows = xRg.Rows.Count
ตั้งค่า xRg = xRg(1)
xFlag = จริง
xTemp = ""
xCount = 0
สำหรับฉัน = 1 ถึง xRows
ตั้งค่า xCell = xRg.Offset(I - 1, 0)
ทำในขณะที่ xFlag
ถ้า xCell.EntireRow.Hidden แล้ว
xStr = xCell.Address
xFlag = เท็จ
อื่น
ไปที่ Ctn
End If
ห่วง
ถ้า xCell.EntireRow.Hidden แล้ว
xTemp = xStr & "," & xCell.Address
End If
ถ้า Len(xTemp) > 171 แล้ว
xCount = xCount + 1
ReDim Preserve xArr (1 ถึง xCount)
xArr(xCount) = xStr
xStr = xCell.Address
อื่น
xStr = xTemp
End If
กล่อง:
ต่อไป
xCount = xCount + 1
ReDim Preserve xArr (1 ถึง xCount)
xArr(xCount) = xStr
สำหรับฉัน = xCount To 1 ขั้นตอน -1
ถ้าฉัน = 1 แล้ว
xStr = กลาง(xArr(I), InStr(xArr(I), ",") + 1, Len(xArr(I)) - InStr(xArr(I), ","))
อื่น
xStr = xArr(ผม)
End If
ถ้า xDRg ไม่มีอะไรแล้ว
ตั้งค่า xDRg = ช่วง (xStr)
อื่น
ตั้งค่า xDRg = ยูเนี่ยน(xDRg, ช่วง(xStr))
End If
ถ้า (Len(xDRg.Address) >= 244) หรือ (xCount = 1) แล้ว
xDRg.EntireRow.Delete
ตั้งค่า xDRg = Nothing
End If
ต่อไป
Application.EnableEvents = จริง
Application.ScreenUpdating = จริง
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ยอดเยี่ยม ขอบคุณ! จะตรวจสอบในโอกาสต่อไปของฉัน / ต้องการสิ่งนี้และตอบกลับ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
รหัส VBA เพื่อลบแถวที่ซ่อนอยู่ทำงานได้อย่างสมบูรณ์โดยไม่มีการเล่นซอ ขอบคุณ!!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับข้อมูล. สิ่งนี้ได้รับคำแนะนำ มีวิธีกรองและลบตัวเลขเฉพาะในแถวไม่เกิน 1 ล้านหรือไม่? โค้ดด้านบนสามารถแก้ไขได้หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
ขออภัย ไม่ได้ทดสอบโค้ดในข้อมูลแถวขนาดใหญ่เช่นนี้ บางทีคุณสามารถทำสำเนาข้อมูลของคุณและทดสอบว่าโค้ดสามารถทำงานได้หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีรหัส VBA นี้มีประโยชน์มาก
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ