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

วิธีลบแถวตามค่าเซลล์ใน 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. ในกล่องโต้ตอบ popping up โปรดเลือกช่วงที่คุณจะลบแถวตามค่าที่กำหนดแล้วคลิก OK ปุ่ม

5. ในกล่องโต้ตอบอื่นโปรดพิมพ์ค่าที่ต้องการที่คุณจะลบแถวตามและคลิกที่ OK ปุ่ม. ดูภาพหน้าจอ:

จากนั้นคุณจะเห็นว่าแถวทั้งหมดถูกลบตามค่าที่ระบุแล้ว


ลบแถวตามค่าเซลล์หนึ่งหรือสองค่าด้วย Kutools for Excel

ถ้าคุณได้ติดตั้ง Kutools for Excelมัน Select Specific Cells คุณลักษณะสามารถช่วยคุณลบแถวที่มีค่าเฉพาะได้อย่างรวดเร็ว โปรดดำเนินการดังนี้:

Kutools สำหรับ Excel - เพิ่มประสิทธิภาพ Excel ด้วยเครื่องมือที่จำเป็นมากกว่า 300 รายการ เพลิดเพลินกับฟีเจอร์ทดลองใช้ฟรี 30 วันโดยไม่ต้องใช้บัตรเครดิต! Get It Now

1. เลือกช่วงที่คุณจะลบแถวตามค่าที่กำหนดแล้วคลิก Kutools > Select > Select Specific Cells. ดูภาพหน้าจอ:

2. ในการเปิดกล่องโต้ตอบเลือกเซลล์ที่ระบุโปรดตรวจสอบ Entire row เลือก Contains ราคาเริ่มต้นที่ Specific type รายการแบบหล่นลงป้อนค่าที่ระบุลงในช่องด้านขวาแล้วคลิกไฟล์ Ok ปุ่ม (ดูภาพหน้าจอด้านบน)
หลังจากใช้คุณสมบัตินี้กล่องโต้ตอบจะปรากฏขึ้นและแสดงจำนวนเซลล์ที่พบตามเกณฑ์ที่ระบุ กรุณาคลิกที่ไฟล์ OK เพื่อปิด

3. ตอนนี้ทั้งแถวที่มีค่าที่กำหนดจะถูกเลือก โปรดคลิกขวาที่แถวที่เลือกแล้วคลิก Delete จากเมนูคลิกขวา ดูภาพหน้าจอด้านล่าง:

หมายเหตุ: นี้ Select Specific Cells คุณสมบัติรองรับการลบแถวทีละหนึ่งหรือสองค่า สำหรับการลบแถวตามค่าที่ระบุสองค่าโปรดระบุค่าอื่นในไฟล์ Specific type ส่วนของกล่องโต้ตอบเลือกเซลล์เฉพาะดังภาพหน้าจอต่อไปนี้:

Kutools สำหรับ Excel - เพิ่มประสิทธิภาพ Excel ด้วยเครื่องมือที่จำเป็นมากกว่า 300 รายการ เพลิดเพลินกับฟีเจอร์ทดลองใช้ฟรี 30 วันโดยไม่ต้องใช้บัตรเครดิต! Get It Now


ลบแถวตามค่าหลายเซลล์ด้วย Kutools for Excel

ในบางกรณีคุณอาจต้องลบแถวตามค่าเซลล์หลายค่าจากคอลัมน์ / รายการอื่นใน Excel ที่นี่ฉันจะแนะนำ Kutools for Excel's Select Same & Different Cells คุณสมบัติในการแก้ปัญหาอย่างรวดเร็วได้อย่างง่ายดาย

Kutools สำหรับ Excel - เพิ่มประสิทธิภาพ Excel ด้วยเครื่องมือที่จำเป็นมากกว่า 300 รายการ เพลิดเพลินกับฟีเจอร์ทดลองใช้ฟรี 30 วันโดยไม่ต้องใช้บัตรเครดิต! Get It Now

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 เพื่อลบแถวที่เลือกทั้งหมด


Demo: ลบแถวตามค่าเซลล์หนึ่งหรือหลายค่าใน Excel


Kutools สำหรับ Excel: เครื่องมือแสนสะดวกกว่า 300 รายการอยู่แค่เพียงปลายนิ้วสัมผัส! เริ่มทดลองใช้ฟรี 30 วันโดยไม่มีข้อจำกัดด้านฟีเจอร์ตั้งแต่วันนี้ Download Now!

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

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

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

kte แท็บ 201905


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

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
Comments (39)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
In given range, if any cell contains defined text the entire row gets deleted.

Pls share code
This comment was minimized by the moderator on the site
Hi Yogesh,
On this webpage, the second method is to delete rows by cell values with VBA code. You can go to there and copy the code directly!
https://www.extendoffice.com/documents/excel/815-excel-remove-rows-based-on-cell-value.html#vba
This comment was minimized by the moderator on the site
There are two issues with the code posted as of this date. 1) the variable xTitleId is not declared, which causes a compilation error if Option Explicit is in use. 2) With Excel 2016, it appears that a range is limited to 129 areas. Each discontiguous matching cell found in the loop creates another area in the DeleteRng variable. Unfortunately, the Union method does not raise an error if that number of areas is exceeded; it just ignores the remaining cells. When the loop is finished, DeleteRng will have no more than 129 areas.
This comment was minimized by the moderator on the site
Hi TomTheToolman,
Thank you so much for your feedback. I've already updated the new code in the article. If you have any other questions, please don't hesitate to let me know.
Amanda
This comment was minimized by the moderator on the site
very well. Thank you!
This comment was minimized by the moderator on the site
Can someone help me...If 3rd column has value 0, then delete all values of corresponding column 1st. In this case answer should be the last line only.... Check MenuName ID 3149 VNLA MILFLLE 2 3149 TURKEY PNN 0 3149 R. BEEF PNN 0 3149 MIX MOCHA 38 3150 M.G.R 1/2 0 3150 THE PEPPE L 0 3150 MIX SLD 0 3150 EGGPLANT 0 3150 STILL WATER 7 3151 MIX MOCHA 38
This comment was minimized by the moderator on the site
Thanks for sharing. I am actually looking for a code that doesn't ask user for range but instead selects a specific column say column "A" and runs till the last row of that column. Can you please help..
This comment was minimized by the moderator on the site
Hi everybody, I am wondering what can we do to delete the following (According to the example shown in this page): Soe appears at several date (sept, October... etc). What I would like is to delete the line where Soe is but to keep the line with last date she appeared. In addition, some lines could be in double but I still want to keep it. So for example, you have the lines: - July 3 /Soe - Sep 4 / Soe - Sep 4 / Soe - Oct 19/ Soe - Nov 13 / Soe - Nov 13 / Soe and what I want to keep is: - Nov 13 / Soe - Nov 13 / Soe My real case is: I have different EAN code and version 1, 2, 3 or 4 and I want to keep the line where the version is the higher. e.g.: I have: - EAN 1 / Version 1 - EAN 1 / Version 1 - EAN 1 / Version 2 - EAN 1 / Version 2 - EAN 2 / Version 2 - EAN 2 / Version 3 - EAN 2 / Version 3 and I want to keep: - EAN 1 / Version 2 - EAN 1 / Version 2 - EAN 2 / Version 3 - EAN 2 / Version 3 I am searching since hours and I am completely blocked on this issue. Many thanks in advance for your brain and help. Best, Marion
This comment was minimized by the moderator on the site
Hi, Thank you this was really helpful. However, there's an error that pops up when I run the codes it says "Object variable or with block variable not set" and it points to " the line DeleteRNG.EntireRow.Delete". Could you please help me with debugging this. Thanks.
This comment was minimized by the moderator on the site
I am trying to use this macro in order to delete unused formulas, because excel views blank formula cells as a zero value and will print extra pages. I was hoping when I deleted the unused formulas, when I printed it would only print the pages that had information. This is not the case and I really need help to find a solution. I have tried using this formula and it is not working and prints three extra pages that I do not need even with the extra formulas being deleted. Sub selectonly() ' ' selectonly Macro ' Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" End Sub
This comment was minimized by the moderator on the site
thank you so much. That save me a lot of time
This comment was minimized by the moderator on the site
Trying to find a delete Function that will delete entire designated rows automatically, based on certain values or certain text contained in other cell(s), using only automated formulas.
This comment was minimized by the moderator on the site
How can i delete selected cell that i want based on value that i entered for example : A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4 When i entered in some cell for example "2" then 2 row will be deleted from A3:D4. If i entered "1" then 1 row will be deleted from A4:D4. if i entered "3" then 3 row will be deleted from A2:D4
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations