วิธีการลบไฟล์โดยใช้ 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: วิธีลบแผ่นงานหากชื่อมีข้อความเฉพาะ

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *