วิธีการที่ระงับการพร้อมท์ "บันทึกการเปลี่ยนแปลง" เมื่อคุณปิดสมุดงานใน Excel


สรุป


ใน Microsoft Excel คุณสามารถสร้าง Microsoft Visual Basic for Applications (VBA) แมโครที่ไม่ใส่พร้อมท์ "บันทึกการเปลี่ยนแปลง" เมื่อคุณปิดสมุดงาน คุณสามารถทำเช่นนี้ โดยการระบุสถานะคุณสมบัติบันทึกแล้วของสมุดงานหรือ โดยการระงับข้อความแจ้งเตือนทั้งหมดสำหรับสมุดงาน

ข้อมูลเพิ่มเติม


Microsoft แสดงตัวอย่างการเขียนโปรแกรมเพื่อประกอบการเท่านั้น โดยไม่มีการรับประกันทั้งโดยชัดแจ้ง หรือโดยนัย กรณีนี้รวมถึงแต่มิได้จำกัดเพียงแค่การการรับประกันโดยนัยเกี่ยวกับการจำหน่ายเป็นสินค้าหรือความเหมาะสำหรับวัตถุประสงค์เฉพาะ บทความนี้ตั้งสมมติฐานว่าคุณมีความคุ้นเคยกับภาษาการเขียนโปรแกรมที่กำลังแสดงและคุ้นเคยกับเครื่องมือที่ใช้ใน การสร้างและแก้จุดบกพร่องของขั้นตอนการดำเนินการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายเกี่ยวกับหน้าที่การใช้งานของกระบวนการเฉพาะ อย่างไรก็ตาม จะไม่แก้ไขตัวอย่างเหล่านี้เพื่อเพิ่มฟังก์ชัน หรือสร้างขั้นตอนเพื่อตอบสนองความต้องการเฉพาะของคุณ จะใช้ตัวอย่างต่อไปนี้อย่างใดอย่างหนึ่ง ให้ทำตามขั้นตอนเหล่านี้:
  1. เริ่ม Excel แล้วเปิดสมุดงานใหม่
  2. กด ALT+F11 เพื่อเริ่ม Visual Basic editor
  3. ในเมนู แทรก คลิก มอดูล
  4. พิมพ์รหัสแมโครตัวอย่างลงในแผ่นงานโมดูล
  5. กด ALT+F11 เพื่อกลับไปยัง Excel
  6. ใน Microsoft Office Excel 2003 และ ใน Excel รุ่นก่อนหน้า ชี้ไปที่แมโครบนเมนูเครื่องมือแล้ว คลิ กแมโคร ใน Microsoft Office Excel 2007 คลิกแมโครในกลุ่มรหัสบนแท็บนักพัฒนาหมายเหตุหากไม่มีแท็บนักพัฒนาพิจารณาขั้นตอนต่อไปนี้:
    1. คลิกMicrosoft Office ปุ่มและคลิกตัวเลือก Excel
    2. ในประเภทเป็นที่นิยมภายใต้ตัวเลือกสูงสุดสำหรับการทำงานกับ Excelคลิกเพื่อเลือกกล่องกาเครื่องหมายแท็บแสดงนักพัฒนาใน Ribbonและจากนั้น คลิกตกลง
  7. เลือกแมโครที่คุณต้องการ และจากนั้น คลิกเรียกใช้
คุณสมบัติบันทึกแล้วส่งกลับค่าFalseถ้ามีการเปลี่ยนแปลงไปยังสมุดงานเนื่องจากถูกบันทึกครั้งล่าสุด คุณสามารถใช้ชื่อของ subroutine ที่สงวนไว้ "Auto_Close" เพื่อกำหนดแมโครที่เรียกใช้ทุกครั้งที่สมุดงานถูกปิด โดยการทำสิ่งนี้ คุณสามารถควบคุมวิธีจัดการเอกสารเมื่อผู้ใช้จะเสร็จสิ้น และได้รับคำแนะนำ Excel เมื่อต้องการปิดเอกสาร

ตัวอย่างที่ 1: ปิดสมุดงานโดยไม่บันทึกการเปลี่ยนแปลง

เมื่อต้องการบังคับให้สมุดงานเพื่อปิดโดยไม่บันทึกการเปลี่ยนแปลง พิมพ์รหัสต่อไปนี้ในโมดูล Visual Basic ของสมุดงานนั้น:
Sub Auto_Close()    ThisWorkbook.Saved = TrueEnd Sub
เนื่องจากคุณสมบัติบันทึกแล้วถูกตั้งค่าเป็นTrue, Excel ตอบว่า สมุดงานได้รับการบันทึก และการเปลี่ยนแปลงใด ๆ เกิดขึ้นตั้งแต่ที่บันทึกครั้งล่าสุด คุณสมบัติDisplayAlertsของโปรแกรมสามารถใช้สำหรับวัตถุประสงค์เดียวกัน ตัวอย่างเช่น แมโครดังต่อไปนี้ปิดDisplayAlertsปิดสมุดงานโดยไม่บันทึกการเปลี่ยนแปลง และจากนั้น เปิดDisplayAlertsอีกครั้ง
Sub CloseBook()    Application.DisplayAlerts = False    ActiveWorkbook.Close    Application.DisplayAlerts = TrueEnd Sub
นอกจากนี้คุณสามารถใช้อาร์กิวเมนต์SaveChangesของวิธีการปิด แมโครดังต่อไปนี้ปิดสมุดงานโดยไม่บันทึกการเปลี่ยนแปลง:
Sub CloseBook2()    ActiveWorkbook.Close savechanges:=FalseEnd Sub

ตัวอย่างที่ 2: ปิดสมุดงาน และบันทึกการเปลี่ยนแปลง

เมื่อต้องการบังคับให้สมุดงานเพื่อบันทึกการเปลี่ยนแปลง พิมพ์รหัสต่อไปนี้ในโมดูล Visual Basic ของสมุดงานนั้น:
Sub Auto_Close()    If ThisWorkbook.Saved = False Then        ThisWorkbook.Save    End IfEnd Sub
Subprocedure นี้ตรวจสอบเมื่อต้องการดูคุณสมบัติบันทึกแล้วแฟ้มถูกกำหนดเป็นFalse ถ้าเป็นเช่นนั้น สมุดงานมีการเปลี่ยนแปลงนับตั้งแต่การบันทึกครั้งสุดท้าย และบันทึกการเปลี่ยนแปลงเหล่านั้น