ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

อาการ

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

ข้อผิดพลาดการทำงานอัตโนมัติ '-๒๑๔๗๐๒๓๑๗๔ ' (800706ba) ข้อผิดพลาดการทำงานอัตโนมัติ

ข้อความแสดงข้อผิดพลาด 2

ข้อผิดพลาดขณะเรียกใช้ ' ๔๖๒ ': เครื่องเซิร์ฟเวอร์ระยะไกลไม่มีอยู่หรือไม่พร้อมใช้งาน

สาเหตุ

Visual Basic ได้สร้างการอ้างอิงไปยัง Word เนื่องจากบรรทัดของโค้ดที่เรียกใช้วัตถุวัตถุเมธอดหรือคุณสมบัติโดยไม่มีการกำหนดด้วยตัวแปรวัตถุของ Word Visual Basic ไม่เผยแพร่การอ้างอิงนี้จนกว่าคุณจะจบโปรแกรม การอ้างอิงพเนจรนี้จะรบกวนรหัสการทำงานอัตโนมัติเมื่อโค้ดทำงานมากกว่าหนึ่งครั้ง

การแก้ไข

ปรับเปลี่ยนรหัสเพื่อให้แต่ละการโทรไปยังวัตถุ Word, เมธอดหรือคุณสมบัติมีคุณสมบัติเหมาะสมกับตัวแปรวัตถุที่เหมาะสม

สถานะ

พฤติกรรมเช่นนี้เกิดจากการออกแบบ

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

เมื่อต้องการทำให้ Word เป็นแบบอัตโนมัติคุณจะสร้างตัวแปรวัตถุที่มักจะอ้างอิงไปยังแอปพลิเคชัน Word หรือวัตถุเอกสาร ตัวแปรวัตถุอื่นๆสามารถตั้งค่าให้อ้างอิงไปยังส่วนที่เลือกช่วงหรือวัตถุอื่นๆในรูปแบบวัตถุ Word เมื่อคุณเขียนโค้ดเพื่อใช้ Word object, เมธอดหรือคุณสมบัติคุณควรนำหน้าการโทรด้วยตัวแปรวัตถุที่เหมาะสมเสมอ ถ้าคุณไม่ใช่ Visual Basic จะใช้การอ้างอิงตัวแปรส่วนกลางที่ซ่อนอยู่ซึ่งจะตั้งค่าเป็นอินสแตนซ์ที่กำลังทำงานอยู่ในปัจจุบัน ถ้า Word ถูกปิดใช้งานหรือถ้ามีการเผยแพร่ตัวแปรวัตถุที่ประกาศตัวแปรส่วนกลางที่ซ่อนอยู่จะอ้างอิงวัตถุที่ไม่ถูกต้อง (ถูกทำลาย) เมื่อเรียกใช้รหัสการดำเนินการอัตโนมัติอีกครั้งการโทรไปยังตัวแปรวัตถุที่ซ่อนนี้จะล้มเหลวโดยมีข้อผิดพลาดดังกล่าวข้างต้น ขั้นตอนต่อไปนี้แสดงวิธีการทบทวนเกิดปัญหานี้และวิธีการแก้ไขปัญหา

ขั้นตอนในการทบทวนเกิดลักษณะการทำงาน

  1. เริ่มต้นโครงการ EXE มาตรฐานใหม่ใน Visual Basic Form1 จะถูกสร้างขึ้นตามค่าเริ่มต้น

  2. คลิกการ อ้างอิง จากเมนู Project จากนั้นคลิกตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้:

    • สำหรับ Office Word ๒๐๐๗ให้คลิก ไลบรารีวัตถุของ Microsoft word ๑๒.๐

    • สำหรับ Word ๒๐๐๓ให้คลิก ไลบรารีวัตถุของ Microsoft Word ๑๑.๐

    • สำหรับ Word ๒๐๐๓ให้คลิก ไลบรารีวัตถุของ Microsoft Word ๑๐.๐

    • สำหรับ Word ๒๐๐๐ให้คลิกไลบรารีวัตถุของ Microsoft Word ๙.๐

    • สำหรับ Word ๙๗ให้คลิกไลบรารีวัตถุของ Microsoft Word ๘.๐

  3. วาง CommandButton บน Form1

  4. คัดลอกโค้ดต่อไปนี้ลงในหน้าต่างรหัสของ Form1:

          Option Explicit      Private Sub Command1_Click()         Dim oWord As Word.Application         Dim oDoc As Word.Document         Dim oRange as Word.Range         Set oWord = CreateObject("Word.Application")         With oWord             .Visible = True             .Activate             .WindowState = wdWindowStateNormal         End With         Set oDoc = oWord.Documents.Add         MsgBox "Document open", vbMsgBoxSetForeground         With oDoc             .PageSetup.LeftMargin = InchesToPoints(1.25)         End With         ' This example inserts text at the end of section one.         Set oRange = ActiveDocument.Sections(1).Range         With oRange             .MoveEnd Unit:=wdCharacter, Count:= -1             .Collapse Direction:=wdCollapseEnd             .InsertParagraphAfter             .InsertAfter "End of section."         End With         With oDoc             .Saved = True         End With         Set oRange = Nothing         Set oDoc = Nothing         oWord.Quit         Set oWord = Nothing      End Sub
  5. บนเมนู เรียกใช้ ให้คลิก เริ่ม หรือกดแป้น F5 เพื่อเริ่มการทำงานของโปรแกรม

  6. คลิก CommandButton ไม่มีข้อผิดพลาดเกิดขึ้น อย่างไรก็ตามการอ้างอิงไปยัง Word ได้ถูกสร้างขึ้นแล้วและยังไม่ได้เผยแพร่

  7. คลิก CommandButton อีกครั้งและโปรดทราบว่าคุณได้รับข้อผิดพลาดที่อธิบายไว้ก่อนหน้านี้หมายเหตุ ข้อผิดพลาดเกิดขึ้นเนื่องจากโค้ดอ้างอิงไปยังวิธี InchesToPoints โดยไม่มีการโทรด้วยตัวแปรวัตถุ oWord

  8. หยุดโครงการและเปลี่ยนบรรทัดต่อไปนี้:

    .PageSetup.LeftMargin = InchesToPoints(1.25)

    เพื่อ

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
  9. เรียกใช้โปรแกรมอีกครั้ง จากนั้นคลิก CommandButton ไม่มีข้อผิดพลาดเกิดขึ้น

  10. คลิก CommandButton อีกครั้งและโปรดทราบว่าคุณได้รับข้อผิดพลาดหมายเหตุ ข้อผิดพลาดเกิดขึ้นเนื่องจากโค้ดอ้างอิงไปยังส่วน ActiveDocument ของช่วงของวัตถุที่ไม่มีการโทรที่มีตัวแปรวัตถุ oWord

  11. หยุดโครงการและเปลี่ยนบรรทัดต่อไปนี้:

    Set oRange = ActiveDocument.Sections(1).Range

    เพื่อ

    Set oRange = oWord.ActiveDocument.Sections(1).Range
  12. เรียกใช้โปรแกรมอีกครั้ง โปรดสังเกตว่าคุณสามารถเรียกใช้โค้ดหลายครั้งได้โดยไม่มีข้อผิดพลาด

เมื่อสร้างโครงการ Visual Basic อัตโนมัติ Word ถ้าโครงการของคุณมีการอ้างอิงไปยังไลบรารีวัตถุของ Microsoft Word โค้ดตัวอย่างสำหรับวัตถุวิธีการและคุณสมบัติของรูปแบบวัตถุ Word จะพร้อมใช้งานจากไฟล์วิธีใช้ Word เมื่อเคอร์เซอร์อยู่เหนือคำสำคัญในโค้ดของคุณคุณจะเห็นข้อความวิธีใช้ที่เกี่ยวข้องโดยการกดแป้น F1 โค้ดตัวอย่างในหัวข้อวิธีใช้จะเป็น Microsoft Word Visual Basic สำหรับรหัสแอปพลิเคชัน จะไม่แสดงการอ้างอิงวัตถุที่จำเป็นต้องใช้โค้ด Visual Basic ของคุณ คุณจะต้องเพิ่มตัวระบุตามความเหมาะสม

อ้างอิง

สำหรับข้อมูลเพิ่มเติมโปรดดูบทความต่อไปนี้ในฐานความรู้ของ Microsoft:

๑๗๘๕๑๐ PRB: วิธีการทำงานอัตโนมัติของ Excel ของวัตถุ ' _Global ' ล้มเหลว

๑๖๗๒๒๓ ไฟล์วิธีใช้ระบบอัตโนมัติของ Microsoft Office ๙๗ที่พร้อมใช้งานสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานอัตโนมัติของแอปพลิเคชัน Office ให้คลิกหมายเลขบทความด้านล่างนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

๒๒๒๑๐๑ HOWTO: ค้นหาและใช้เอกสารรุ่นวัตถุของ Office

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×