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

วิธีลบแผ่นงานตามค่าเซลล์ใน Excel

สมมติว่าฉันมีแผ่นงานหลายแผ่นในสมุดงานตอนนี้ฉันต้องการลบแผ่นงานตามค่าของเซลล์ ตัวอย่างเช่นหากเซลล์ A1 มีข้อความ "KTE" จำเป็นต้องลบแผ่นงานทั้งหมดที่เซลล์ A1 มีข้อความนี้พร้อมกัน บทความนี้อาจช่วยคุณจัดการกับงานนี้ใน Excel

ลบแผ่นงานตามค่าเซลล์ด้วยรหัส VBA


ลูกศรสีฟ้าฟองขวา ลบแผ่นงานตามค่าเซลล์ด้วยรหัส VBA

ที่นี่ฉันจะแนะนำรหัสสำหรับคุณในการลบแผ่นงานทั้งหมดที่เซลล์เฉพาะมีค่าบางอย่างโปรดทำดังนี้:

1. ค้างไว้ ALT + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ โมดูล หน้าต่าง.

รหัส VBA: ลบแผ่นงานตามค่าของเซลล์:

Sub deletesheetbycell()
'Updateby Extendoffice
    Dim shName As String
    Dim xName As String
    Dim xWs As Worksheet
    Dim cnt As Integer
    shName = Application.InputBox("Input the text to delete the sheets based on:", "Kutools for Excel", _
                                    "", , , , , 2)
    Application.DisplayAlerts = False
    cnt = 0
    For Each xWs In ThisWorkbook.Sheets
        If xWs.Range("A1").Value = shName Then
            xWs.delete
            cnt = cnt + 1
        End If
    Next xWs
    Application.DisplayAlerts = True
    MsgBox "Have deleted" & cnt & "worksheets", vbInformation, "Kutools for Excel"
End Sub

หมายเหตุ: ในโค้ดด้านบน A1 คือเซลล์เฉพาะที่มีข้อความบางอย่างที่คุณต้องการลบแผ่นงานตาม

3. จากนั้นกด F5 คีย์เพื่อเรียกใช้รหัสนี้และกล่องพร้อมต์จะปรากฏขึ้นเพื่อเตือนให้คุณป้อนค่าเฉพาะที่คุณต้องการลบแผ่นงานตามดูภาพหน้าจอ:

doc ลบแผ่นงานตามเซลล์ 1

4. จากนั้นคลิก OK แผ่นงานทั้งหมดที่เซลล์ A1 มีข้อความ KTE ถูกลบออกพร้อมกัน ดูภาพหน้าจอ:

doc ลบแผ่นงานตามเซลล์ 2


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

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

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

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (4)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คำถามสั้น ๆ โค้ดข้างต้นใช้ได้กับฉันสำหรับการลบเวิร์กชีตที่มีค่าที่ป้อน แต่ถ้าฉันต้องการลบเวิร์กชีตที่ไม่มีค่าที่ป้อน ฉันพยายามแทนที่โอเปอเรเตอร์ "=" ด้วยตัวดำเนินการ <>" แต่ใช้งานไม่ได้ ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
อังกูร
อย่างที่คุณบอก คุณเพียงแค่ต้องเปลี่ยน "=" เป็น " <>" ตามโค้ดด้านล่าง:

ย่อย deletesheetbycell()
Dim shName เป็นสตริง
Dim xName เป็นสตริง
Dim xWs เป็นเวิร์กชีต
Dim cnt เป็นจำนวนเต็ม
shName = Application.InputBox("ป้อนข้อความไม่ลบชีตตาม:", "Kutools สำหรับ Excel", _
"" , , , , , 2)
Application.DisplayAlerts = เท็จ
ซีเอ็นที = 0
สำหรับแต่ละ xWs ใน ThisWorkbook.Sheets
ถ้า xWs.Range("A1")).Value <> shName แล้ว
xWs.ลบ
cnt = cnt + 1
End If
ถัดไป xWs
Application.DisplayAlerts = จริง
MsgBox "ลบแล้ว" & cnt & "แผ่นงาน", vbInformation, "Kutools สำหรับ Excel"
ย่อยสิ้นสุด

โปรดลองหวังว่าจะช่วยคุณได้!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีตอนบ่าย,
คุณช่วยบอกฉันได้ไหมว่ามีวิธีตอบกลับใช่โดยอัตโนมัติเมื่อได้รับแจ้งให้ลบแผ่นงานหรือไม่ ขอบคุณมาก.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีอีกครั้ง Nevermind ในคำถามสุดท้ายของฉัน ฉันเพิ่มสิ่งต่อไปนี้ก่อนและหลังบรรทัด Delete:Application.DisplayAlerts = False
Application.DisplayAlerts = จริง

มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL