ข้อความแสดงข้อผิดพลาดเมื่อคุณเรียกใช้แมโคร Visual Basic for Applications ใน Excel: "เมธอด 'SaveAs' ของวัตถุ '_Worksheet' ล้มเหลว"

อาการ

เมื่อคุณเรียกใช้แมโคร Visual Basic for Applications ใน Microsoft Excel คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้หรือข้อความแสดงข้อผิดพลาดที่คล้ายกันนี้:

หมายเหตุ

ข้อผิดพลาดรันไทม์ '1004':
เมธอด 'SaveAs' ของวัตถุ '_Worksheet' ล้มเหลว

สาเหตุ

ลักษณะการทํางานนี้อาจเกิดขึ้นได้เมื่อเงื่อนไขทั้งสองอย่างต่อไปนี้เป็นจริง:

  • คุณกําลังใช้แมโคร Visual Basic for Applications เพื่อบันทึกเวิร์กชีต

    -และ-

  • คุณระบุรูปแบบไฟล์เป็นค่าคงที่ xlWorkbookNormal

ตัวอย่างเช่น รหัสต่อไปนี้ทําให้เกิดข้อผิดพลาดนี้:

Sub A()
   Dim myNewSheet As Worksheet
   Set myNewSheet = ActiveSheet
   FileNameBin = "c:\ABC"
   myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormal
End Sub

วิธีแก้ไขปัญหาชั่วคราว

Microsoft แสดงตัวอย่างการเขียนโปรแกรมสําหรับภาพประกอบเท่านั้น โดยไม่มีการรับประกันทั้งโดยชัดแจ้งหรือโดยนัย รวมถึงแต่ไม่จํากัดเพียงการรับประกันโดยนัยถึงความสามารถในเชิงพาณิชย์และ/หรือความเหมาะสมสําหรับวัตถุประสงค์เฉพาะ บทความนี้จะถือว่าคุณคุ้นเคยกับภาษาการเขียนโปรแกรมที่แสดงอยู่ และเครื่องมือที่ใช้ในการสร้างและแก้จุดบกพร่อง ผู้เชี่ยวชาญฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการทํางานของกระบวนการเฉพาะได้ แต่จะไม่ปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้ฟังก์ชันการทํางานที่เพิ่มขึ้นหรือสร้างกระบวนการเพื่อตอบสนองความต้องการเฉพาะของคุณ
ถ้าคุณมีประสบการณ์การเขียนโปรแกรมที่จํากัด คุณอาจต้องการติดต่อคู่ค้าที่ได้รับการรับรองของ Microsoft หรือบริการคําแนะนําของ Microsoft สําหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ของ Microsoft เหล่านี้:

คู่ค้าที่ได้รับการรับรองของ Microsoft - https://partner.microsoft.com/global/30000104

บริการให้คําปรึกษาของ Microsoft - http://support.microsoft.com/gp/advisoryservice

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกการสนับสนุนที่พร้อมใช้งานและวิธีการติดต่อ Microsoft โปรดแวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

เมื่อต้องการแก้ไขลักษณะการทํางานนี้ ให้เปลี่ยนข้อกําหนดรูปแบบไฟล์จากค่าคงที่ xlWorkbookNormal เป็น 1 โค้ดตัวอย่างจะทํางานตามปกติถ้าเปลี่ยนเป็น:

Sub A()
   Dim myNewSheet As Worksheet
   Set myNewSheet = ActiveSheet
   FileNameBin = "c:\ABC"
   myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1
End Sub

หมายเหตุ แม้ว่าคุณจะบันทึกเวิร์กชีต เวิร์กชีตทั้งหมดในเวิร์กบุ๊กที่เลือกจะถูกบันทึกเมื่อตั้งค่ารูปแบบไฟล์เป็น xlWorkbookNormal หรือ 1

สถานะ

Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วนเริ่มต้นของเอกสารนี้