วิธีการลบไฟล์โดยใช้ vba (พร้อมตัวอย่าง)
คุณสามารถใช้คำสั่ง Kill ใน VBA เพื่อลบไฟล์ Excel เฉพาะในโฟลเดอร์เฉพาะได้
นี่เป็นวิธีทั่วไปในการใช้คำสั่งนี้ในทางปฏิบัติ:
SubDeleteFile ()
On Error Resume Next
Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
On Error GoTo 0
End Sub
มาโครนี้จะลบไฟล์ Excel ชื่อ soccer_data.xlsx ที่อยู่ในโฟลเดอร์ต่อไปนี้:
C:\Users\Bob\Desktop\My_Data
บรรทัด On Error Resume Next จะบอก VBA ว่าหากมีข้อผิดพลาดเกิดขึ้นและไม่พบไฟล์ ไม่ควรแสดงข้อความแสดงข้อผิดพลาด
จากนั้นเราใช้ On Error GoTo 0 เพื่อรีเซ็ตข้อความแสดงข้อผิดพลาดเป็นการตั้งค่าเริ่มต้น
หากคุณต้องการแสดงข้อความแสดงข้อผิดพลาดหากไม่พบไฟล์ เพียงลบสองบรรทัดนี้ออกจากโค้ด
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: ลบไฟล์โดยใช้ VBA
สมมติว่าเรามีโฟลเดอร์ต่อไปนี้ที่มีไฟล์ Excel สามไฟล์:
สมมติว่าเราต้องการใช้ VBA เพื่อลบไฟล์ชื่อ soccer_data.xlsx
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubDeleteFile ()
On Error Resume Next
Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
On Error GoTo 0
End Sub
เมื่อเราเรียกใช้แมโครนี้และเปิดโฟลเดอร์อีกครั้ง เราจะเห็นว่าไฟล์ชื่อ soccer_data.xlsx ถูกลบไปแล้ว:
ไฟล์อื่นๆ ทั้งหมดยังคงอยู่ในโฟลเดอร์ครบถ้วน
หากคุณต้องการให้แสดงข้อความแสดงข้อผิดพลาดหากไม่มีไฟล์อยู่ คุณสามารถใช้แมโครต่อไปนี้:
SubDeleteFile ()
Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
เราได้รับข้อความแสดงข้อผิดพลาดนี้เนื่องจากไฟล์ soccer_data.xlsx ถูกลบไปแล้ว และไม่มีอยู่ในโฟลเดอร์อีกต่อไป
หมายเหตุ : โปรดทราบว่าคำสั่ง Kill จะลบไฟล์อย่างถาวร และไม่ใช่แค่ส่งไปที่ถังขยะเท่านั้น
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีนับจำนวนแผ่นงานในสมุดงาน
VBA: วิธีดึงข้อมูลจากสมุดงานอื่น
VBA: วิธีลบแผ่นงานหากชื่อมีข้อความเฉพาะ