วิธีลบแถวโดยใช้ VBA (14 วิธี)

  • แบ่งปันสิ่งนี้
Hugh West

หากคุณกำลังมองหาวิธีที่ง่ายที่สุดในการลบแถวโดยใช้ VBA แสดงว่าคุณมาถูกที่แล้ว

มาเจาะลึกบทความหลักกัน

ดาวน์โหลดสมุดงาน

VBA Delete Row.xlsm

14 วิธีในการลบแถวโดยใช้ VBA

ที่นี่ ฉันมีสามข้อมูล ตารางแสดงวิธีการลบแถวโดยใช้ VBA ตารางแรกประกอบด้วย ผลิตภัณฑ์ ของบริษัทและ ขนาด , ราคา ของบริษัท

ตารางที่สอง หนึ่งมี รหัสผลิตภัณฑ์ และ ขนาดผลิตภัณฑ์ และ ราคา

ที่เกี่ยวข้อง และอันสุดท้ายประกอบด้วย ชื่อโครงการ และ วันที่เริ่มต้น และ ค่าใช้จ่าย บางส่วน

สำหรับการสร้างบทความ ฉัน เคยใช้เวอร์ชัน Microsoft Excel 365 คุณสามารถใช้เวอร์ชันอื่นตามความสะดวกของคุณ

วิธีที่ 1: ลบแถวเดียวโดยใช้ VBA

สมมติว่าคุณ ต้องการลบแถวที่มี ผลิตภัณฑ์ รองเท้า 1, และหากต้องการลบแถวเดียวนี้ คุณสามารถทำตามวิธีนี้ได้

ขั้นตอน-01 :

➤ไปที่ นักพัฒนา แท็บ>> Visual Basic ตัวเลือก

จากนั้น Visual Basic Editor จะเปิดขึ้น

➤ไปที่ แทรก แท็บ>> โมดูล ตัวเลือก

หลังจากนั้น โมดูล จะถูกสร้างขึ้น

ขั้นตอนที่ 02 :

➤เขียนฟอล ลดรหัส

1294

ที่นี่ “เดี่ยว” คือการรวมกันของหลายช่วงที่สอดคล้องกับเซลล์ที่มีวันที่ 11/12/2021 และสุดท้าย ช่วงจะถูกลบ

➤กด F5

ผลลัพธ์ :

หลังจากนั้น คุณจะลบแถวที่มีวันที่แน่นอนเป็น 11/12/2021 .

เนื้อหาที่เกี่ยวข้อง: Excel VBA เพื่อลบแถวที่มีข้อมูลเฉพาะ (9 ตัวอย่าง)

แนวทางปฏิบัติ ส่วน

สำหรับการฝึกฝนด้วยตัวเอง เราได้เตรียมส่วน แบบฝึกหัด ไว้ด้านล่างในชีตที่ชื่อ แบบฝึกหัด โปรดทำด้วยตัวเอง

สรุป

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

ชื่อแผ่นงาน และ แถว(7)จะเลือกหมายเลขแถว

.EntireRow.Delete จะลบทั้งแถว 7

➤กด F5

ผลลัพธ์ :

ด้วยวิธีนี้ คุณจะลบแถวที่มี ผลิตภัณฑ์ ชื่อ รองเท้า 1 .

อ่านเพิ่มเติม: วิธีลบแถวใน Excel: 7 วิธีการ

วิธีที่ 2: ลบหลายแถวโดยใช้ VBA

ถ้าคุณต้องการลบหลายแถว เช่น แถวที่มี ผลิตภัณฑ์ ชื่อ Shoe1 , Shoe2, และ Shoe3 จากนั้นคุณสามารถทำตามโค้ด VBA นี้

Step-01 :

➤ทำตาม Step-01 ของ Method-1

9610

ที่นี่ หมายเลขแถว 13, 10 , และ 7 จะถูกลบออก และในการเขียนหมายเลขแถวตามลำดับ คุณต้องเขียนจากหมายเลขแถวสุดท้ายไปยังหมายเลขแถวแรกเหมือนรหัสนี้

มิฉะนั้น หลังจากลบแถวแรกเช่นแถวที่ 7 แล้ว ที่เหลือ แถวที่อยู่ใต้แถวนี้จะเลื่อนขึ้นหนึ่งแถว ดังนั้น แถวที่ 10 จะเป็นแถวที่ 9 และแถวที่ 13 จะเป็นแถวที่ 12 สำหรับการรีนี้ คุณจะไม่สามารถลบแถวที่ถูกต้องได้

➤กด F5

ผลลัพธ์ :

จากนั้น คุณจะลบแถวที่มีชื่อ Product Shoe 1 , Shoe2, และ Shoe3

อ่านเพิ่มเติม: วิธีลบหลายแถวใน Excel (3 วิธี)

วิธีที่ 3 : การลบแถวโดยเลือก

ในที่นี้ ผมจะแสดงวิธีการลบแถวเกี่ยวกับเซลล์ที่ใช้งานอยู่ของแถวนั้น

ขั้นตอนที่ 01 :

➤ติดตาม ขั้นตอนที่ 01 ของ วิธีที่ 1

7288

จะลบแถวที่มีเซลล์ที่ใช้งานอยู่

➤บันทึกโค้ด

Step-02 :

➤เลือกเซลล์ใดก็ได้ในแถวที่คุณต้องการลบ ( ในที่นี้ฉันได้เลือกเซลล์ B7 )

➤ไปที่ นักพัฒนา แท็บ>> มาโคร ตัวเลือก

หลังจากนั้น มาโคร วิซาร์ดจะเปิดขึ้น

➤เลือก ชื่อมาโคร dltrow3 แล้วกด เรียกใช้

<3

ผลลัพธ์ :

หลังจากนั้น คุณจะลบแถวที่มีชื่อ ผลิตภัณฑ์ รองเท้า 1 .

วิธีที่ 4: การลบแถวทั้งหมดในส่วนที่เลือก

สำหรับการลบแถวทั้งหมดในส่วนที่เลือก คุณสามารถทำตามวิธีนี้ได้

ขั้นตอน-01 :

➤ติดตาม ขั้นตอน-01 ของ วิธีการ-1

8716

มัน จะลบแถวทั้งหมดของการเลือก

➤บันทึกรหัส

Step-02 :

➤เลือกช่วงของแถวที่คุณต้องการลบ (ที่นี่ ฉันได้เลือกช่วง B7:D9 )

➤ไปที่ นักพัฒนาซอฟต์แวร์ แท็บ>> มาโคร ตัวเลือก

<0

หลังจากนั้น มาโคร วิซาร์ดจะเปิดขึ้น

➤เลือก ชื่อมาโคร dltrow4 และกด เรียกใช้

ผลลัพธ์ :

จากนั้น คุณจะลบแถวที่มี ผลิตภัณฑ์ ชื่อ รองเท้า 1 , Jacket1, และ Jacket2 .

อ่านเพิ่มเติม: วิธีลบแถวที่เลือกใน Excel(8 วิธี)

วิธีที่ 5: การลบแถวหากเซลล์ใดว่าง

ที่นี่ ฉันมีเซลล์ว่างซึ่งก็คือ B9 (ฉันได้ลบค่าออกจากเซลล์นี้สำหรับสิ่งนี้ วิธีการ) และใช้รหัส VBA ฉันจะลบแถวที่มีเซลล์ B9

ขั้นตอนที่-01 :

➤ทำตาม ขั้นตอนที่ 01 ของ วิธีที่ 1

6399

จะเป็นการลบแถวทั้งหมดในช่วง “B5:D13” มีเซลล์ว่างอยู่

➤กด F5

ผลลัพธ์ :

จากนั้น คุณจะสามารถลบแถวที่มีเซลล์ว่างได้

อ่านเพิ่มเติม: วิธีลบแถวว่างใน Excel (11 วิธี)

วิธีที่ 6: การลบแถวถ้าทั้งแถวว่างเปล่า

ที่นี่ ฉันมีเซลล์ว่างซึ่ง B9 (ฉันได้ลบค่าสำหรับวิธีนี้แล้ว) และแถวว่างซึ่งเป็นแถวที่ 12 (ฉันได้ลบค่าสำหรับวิธีนี้แล้ว) และใช้โค้ด VBA และ ฟังก์ชัน COUNTA ฉันจะลบแถวที่ว่างเปล่า

Step-01 :

➤Follow Step-01 ของ เมธอด-1

6411

“B5:D13” คือช่วงข้อมูล และ FOR ลูปจะทำงานสำหรับทุกเซลล์ใน ช่วงนี้

CountA(cell.EntireRow) จะส่งกลับจำนวนเซลล์ที่ไม่ว่าง และเมื่อกลายเป็น 0 แถวจะถูกลบ

➤กด F5

ผลลัพธ์ :

หลังจากนั้น คุณจะสามารถลบแถวที่ว่างได้ แต่จะไม่ลบแถวที่มีทั้งหมด เซลล์ของแถวนี้ว่างเปล่า

อ่านเพิ่มเติม: วิธีใช้ VBA เพื่อลบแถวว่างใน Excel

วิธีที่ 7: การลบทุกๆ แถวที่ n

คุณสามารถลบทุกๆ แถวที่ n (ในกรณีนี้คือทุกๆ แถวที่ 3) โดยทำตามวิธีนี้

<0 ขั้นตอน-01:

➤ติดตาม ขั้นตอน-01 ของ วิธีการ-1

1532

“B5 :D13” คือช่วงข้อมูล และ rc จะส่งกลับจำนวนแถวทั้งหมดของช่วงนี้ ซึ่งก็คือ 9 .

ในที่นี้ FOR การวนซ้ำจะเริ่มจากแถวสุดท้ายซึ่งเป็น rc หรือ 9 ในกรณีนี้และสิ้นสุดด้วยแถวแรก

ขั้นตอนที่ -3 จะช่วยลบทุกแถว ที่ 3 ในช่วงนี้

➤กด F5

ผลลัพธ์ :

จากนั้น คุณจะลบแถวที่มีชื่อ ผลิตภัณฑ์ Shoe 1 , Shoe2, และ Shoe3 .

อ่านเพิ่มเติม: วิธีลบทุกๆ R ที่ n ใน Excel (6 วิธีที่ง่ายที่สุด)

การอ่านที่คล้ายกัน:

  • วิธีลบแถวที่เลือกด้วย Excel VBA (ขั้นตอน- คำแนะนำทีละขั้นตอน)
  • ลบแถวที่ไม่ได้ใช้ใน Excel (8 วิธีง่ายๆ)
  • วิธีการลบแถวที่ซ่อนอยู่ใน Excel (3 วิธี)
  • ลบแถวที่ไม่สิ้นสุดใน Excel (5 วิธีง่ายๆ)
  • วิธีลบแถวใน Excel ที่ดำเนินไปตลอดกาล (4 ง่ายๆวิธี)

วิธีที่ 8: การลบแถวตามค่าเซลล์

ในวิธีนี้ ฉันจะลบแถวที่มีค่าเฉพาะ เสื้อเชิ้ต 2 .

Step-01 :

➤ทำตาม Step-01 ของ Method- 1

4780

“B5:D13” คือช่วงข้อมูลและลูป FOR จะทำงานสำหรับทุกเซลล์ในช่วงนี้

หากเซลล์ใดในแถวมีค่า “เสื้อเชิ้ต 2” แถวนั้นจะถูกลบ

➤กด F5<2

ผลลัพธ์ :

ด้วยวิธีนี้ คุณจะลบแถวที่มีชื่อ ผลิตภัณฑ์ เสื้อตัวที่ 2 .

อ่านเพิ่มเติม: แมโคร VBA เพื่อลบแถวหากเซลล์มีค่าใน Excel (2 วิธี)

วิธีที่ 9: การลบแถวที่ซ้ำกัน

ที่นี่ ฉันมีสองแถวที่มี รหัสผลิตภัณฑ์ 97375 และฉันต้องการลบแถวใดแถวหนึ่งที่มีเครื่องหมาย กล่องสีแดงด้านล่าง

ขั้นตอนที่ 01 :

➤ติดตาม ขั้นตอนที่ 01 ของ วิธีที่ 1

2581

ที่นี่ “B5:D13” คือช่วงข้อมูลและ คอลัมน์:=1 ฉัน ตอบ มันจะค้นหาค่าที่ซ้ำกันเฉพาะในคอลัมน์เดียวซึ่งเป็นคอลัมน์เริ่มต้น คอลัมน์ B แต่ถ้าคุณต้องการค้นหาในคอลัมน์อื่นด้วย คุณสามารถใช้ตัวเลขนี้ตามความต้องการ

➤กด F5

ผลลัพธ์ :

หลังจากนั้น คุณจะสามารถลบแถวที่เป็น คล้ายกับแถวอื่น

อ่านเพิ่มเติม: วิธีลบแถวที่ซ้ำกันในExcel พร้อม VBA (8 วิธีที่มีประสิทธิภาพ)

วิธีที่ 10: การลบแถวในตาราง

สมมติว่า คุณมีตารางต่อไปนี้ที่ชื่อ Table1 และ ตอนนี้คุณต้องการลบแถวหมายเลข 6 ของตารางนี้ ในการทำเช่นนี้ คุณสามารถทำตามวิธีนี้ได้

ขั้นตอนที่ 01 :

➤ติดตาม ขั้นตอนที่ 01 ของ เมธอด-1

8490

ที่นี่ “ตาราง” คือชื่อแผ่นงาน “ตาราง 1” คือชื่อตาราง และ 6 คือหมายเลขแถวของตารางที่คุณต้องการลบ

➤กด F5

ผลลัพธ์ :

ด้วยวิธีนี้ คุณจะลบแถวที่คุณต้องการในตารางนี้

อ่านเพิ่มเติม: วิธีลบแถวที่ซ้ำกันตามคอลัมน์เดียวโดยใช้ Excel VBA

วิธีที่ 11: การลบแถวที่มองเห็นได้หลังจากการกรอง

ที่นี่ ฉันมีตารางข้อมูลที่กรองโดย คอลัมน์ ราคา สำหรับค่าที่มากกว่า $1,500.00 และฉันต้องการลบแถวที่มองเห็นทั้งหมดหลังจากการกรอง

ขั้นตอน-01 :

➤ติดตาม ขั้นตอน-01 ของ วิธีการ-1

1933

ที่นี่ “B5: D13” คือช่วงข้อมูล

➤กด F5

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

➤คลิกที่ไอคอน เลือกทั้งหมด ตัวเลือก

➤กด ตกลง

ผลลัพธ์ :

สุดท้าย คุณจะได้แถวที่ซ่อนอยู่กลับเข้ามาตารางข้อมูล

อ่านเพิ่มเติม: วิธีกรองและลบแถวด้วย VBA ใน Excel (2 วิธี)

วิธีที่ 12: การลบแถวตามเซลล์ที่ใช้งานล่าสุด

ที่นี่ เซลล์ที่ใช้งานล่าสุดของฉันคือเซลล์ B13 และฉันต้องการลบเซลล์ที่มีเซลล์ที่ใช้งานล่าสุดดังต่อไปนี้ ตารางข้อมูล

ขั้นตอนที่ 01 :

➤ติดตาม ขั้นตอนที่ 01 ของ วิธีการ -1

2092

ที่นี่ 2 หมายถึง คอลัมน์ B ที่ฉันมีเซลล์ที่ใช้งานอยู่ คุณสามารถเปลี่ยนตัวเลขได้ตามความต้องการ<3

➤กด F5

ผลลัพธ์ :

ด้วยวิธีนี้ คุณจะลบ แถวที่ใช้งานล่าสุด

อ่านเพิ่มเติม: โค้ด Excel VBA เพื่อลบแถวตามค่าหลายเซลล์ (3 เกณฑ์)

วิธีที่ 13: การลบแถวที่มีสตริงใดๆ

สมมติว่าคุณต้องการลบแถวที่มีสตริงใดๆ และทำตามวิธีนี้ได้

<64

ขั้นตอน-01 :

➤ติดตาม ขั้นตอน-01 ของ วิธีการ-1

8597

ที่นี่ “สตริง” คือชื่อแผ่นงาน หมายเลขแถวแรกของช่วงข้อมูลนี้คือ 5 และหมายเลขคอลัมน์เริ่มต้นคือ 2

คำสั่ง ด้วย ช่วยให้คุณระบุวัตถุ หรือประเภทที่ผู้ใช้กำหนดครั้งเดียวสำหรับชุดคำสั่งทั้งหมด

คำสั่ง On Error Resume Next ระบุว่า เมื่อเกิดข้อผิดพลาดรันไทม์ การควบคุมจะไปที่คำสั่งต่อจากคำสั่งโดยที่ เกิดข้อผิดพลาด

LastRow และ LastColumn ส่งกลับแถวและคอลัมน์สุดท้ายของช่วงข้อมูล

SpecialCells(xlCellTypeConstants, xlTextValues) จะเลือกแถวที่มีค่าข้อความใดๆ ใน ช่วง

➤กด F5

ผลลัพธ์ :

หลังจากนั้น คุณจะ ลบแถวที่มีสตริงข้อความ

อ่านเพิ่มเติม: ทางลัดของ Excel เพื่อลบแถว (ด้วยเทคนิคโบนัส)

วิธีที่ 14: การลบแถวตามวันที่

ที่นี่ ฉันจะลบแถวที่มีวันที่พิเศษ 11/12/2021 (ดด/วว/ปปปป) ในนี้ วิธีการใช้ ฟังก์ชัน DATEVALUE .

Step-01 :

➤Follow Step- 01 ของ เมธอด-1

5393

ที่นี่ “วันที่” คือชื่อแผ่นงาน หมายเลขแถวแรกของช่วงข้อมูลนี้คือ 5 และคอลัมน์เกณฑ์ (ซึ่งคอลัมน์มีวันที่) หมายเลขคือ 3

คำสั่ง ด้วย ช่วยให้คุณระบุวัตถุหรือประเภทที่ผู้ใช้กำหนดได้เพียงครั้งเดียว สำหรับชุดคำสั่งทั้งหมด

คำสั่ง On Error Resume Next ระบุว่า เมื่อเกิดข้อผิดพลาดรันไทม์ การควบคุมจะไปที่คำสั่งตามหลังคำสั่งที่เกิดข้อผิดพลาด

LastRow ส่งกลับแถวสุดท้ายของช่วงข้อมูล และที่นี่ FOR การวนซ้ำจะเริ่มต้นจากแถวสุดท้ายซึ่งเป็น แถวสุดท้าย หรือ 6 ในกรณีนี้ และสิ้นสุดด้วยแถวแรก

DATEVALUE จะแปลงข้อความวันที่เป็นค่า

ที่นี่ Union จะส่งกลับค่า

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง