วิธีการลบโฟลเดอร์โดยใช้ vba (พร้อมตัวอย่าง)
คุณสามารถใช้วิธีการต่อไปนี้ใน VBA เพื่อลบโฟลเดอร์:
วิธีที่ 1: ลบไฟล์ทั้งหมดในโฟลเดอร์
Sub DeleteFolderContents()
On Error Resume Next
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
On Error GoTo 0
End Sub
มาโครนี้จะลบไฟล์ทั้งหมดในโฟลเดอร์ชื่อ My_Data
วิธีที่ 2: ลบทั้งโฟลเดอร์
SubDeleteFolder ()
On Error Resume Next
'delete all files in folder
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
'delete empty folder
RmDir " C:\Users\bobbi\Desktop\My_Data\ "
On Error GoTo 0
End Sub
มาโครนี้จะลบโฟลเดอร์ My_Data ทั้งหมดเพื่อไม่ให้มีอยู่แล้ว
บรรทัด On Error Resume Next จะบอก VBA ว่าหากมีข้อผิดพลาดเกิดขึ้นและไม่พบโฟลเดอร์ ไม่ควรแสดงข้อความแสดงข้อผิดพลาด
จากนั้นเราใช้ On Error GoTo 0 เพื่อรีเซ็ตข้อความแสดงข้อผิดพลาดเป็นการตั้งค่าเริ่มต้น
หากคุณต้องการแสดงข้อความแสดงข้อผิดพลาดหากไม่พบโฟลเดอร์ เพียงลบสองบรรทัดนี้ออกจากโค้ด
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับโฟลเดอร์ต่อไปนี้ชื่อ My_Data ซึ่งมีไฟล์ Excel สามไฟล์:
ตัวอย่างที่ 1: ลบไฟล์ทั้งหมดในโฟลเดอร์โดยใช้ VBA
สมมติว่าเราต้องการใช้ VBA เพื่อลบไฟล์ทั้งหมดออกจากโฟลเดอร์ชื่อ My_Data
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
Sub DeleteFolderContents()
On Error Resume Next
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
On Error GoTo 0
End Sub
เมื่อเราเรียกใช้แมโครนี้และเปิดโฟลเดอร์อีกครั้ง เราจะเห็นว่าไฟล์ทั้งหมดถูกลบไปแล้ว:
ตัวอย่างที่ 2: ลบทั้งโฟลเดอร์โดยใช้ VBA
หากคุณต้องการใช้ VBA เพื่อลบโฟลเดอร์ทั้งหมดที่เรียกว่า My_Data เพื่อไม่ให้โฟลเดอร์นั้นอยู่อีกต่อไป คุณสามารถสร้างแมโครต่อไปนี้:
SubDeleteFolder ()
On Error Resume Next
'delete all files in folder
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
'delete empty folder
RmDir " C:\Users\bobbi\Desktop\My_Data\ "
On Error GoTo 0
End Sub
เมื่อเราเรียกใช้แมโครนี้และเปิด File Explorer เราจะเห็นว่าไม่มีโฟลเดอร์ชื่อ My_Data อีกต่อไป:
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีนับจำนวนแผ่นงานในสมุดงาน
VBA: วิธีดึงข้อมูลจากสมุดงานอื่น
VBA: วิธีลบแผ่นงานหากชื่อมีข้อความเฉพาะ