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

อาการ

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

ใน Microsoft Excel 97 และรุ่นที่ใหม่กว่าของ Excel คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

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

ข้อผิดพลาดขณะทำงาน '1004':
เมธอด '<ชื่อของเมธอด >' ของวัตถุ '_Global' ล้มเหลว

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

ข้อผิดพลาดโปรแกรมประยุกต์กำหนด หรือวัตถุกำหนด

ใน Microsoft Excel 95 คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

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

ข้อผิดพลาดรันไทม์ '-2147023174'
ข้อผิดพลาดในการทำงานอัตโนมัติของ OLE

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

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

สาเหตุ

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

การแก้ปัญหา

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

สถานะ

ลักษณะการทำงานนี้เกิดจากการออกแบบ

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

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

ขั้นตอนต่อไปนี้แสดงให้เห็นถึงวิธีการทบทวนเกิดปัญหานี้และวิธีการแก้ไขปัญหา

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

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

  2. บนเมนูโครงการคลิกอ้างอิงและจากนั้น ตรวจสอบไลบรารีวัตถุสำหรับรุ่นของ Excel ที่คุณต้องการที่จะทำให้เป็นอัตโนมัติ

  3. ใส่ตัวควบคุมCommandButtonบน Form1

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

          Option Explicit

    Private Sub Command1_Click()
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets("Sheet1")
    xlSheet.Range(Cells(1, 1), Cells(10, 2)).Value = "Hello"
    xlBook.Saved = True
    Set xlSheet = Nothing
    Set xlBook = Nothing
    xlApp.Quit
    Set xlApp = Nothing
    End Sub
  5. บนเมนูรันคลิกเริ่มหรือกด F5 เพื่อเริ่มการทำงานของโปรแกรม

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

  7. คลิกที่ตัวควบคุมCommandButtonอีกครั้ง โปรดสังเกตว่า คุณได้รับข้อความแสดงข้อผิดพลาดที่กล่าวถึงในส่วน "อาการ"

    หมายเหตุ ข้อความแสดงข้อผิดพลาดเกิดขึ้นเนื่องจากรหัสที่อ้างอิงถึงวิธีการของเซลล์โดยไม่ต้องอยู่ก่อนหน้าการโทรด้วยการ
    ตัวแปรวัตถุxlSheet

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

    xlSheet.Range(Cells(1,1),Cells(10,2)).Value = "Hello"

    เปลี่ยนบรรทัดของรหัสที่คล้ายกับบรรทัดของรหัสต่อไปนี้

    xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
  9. เรียกใช้โปรแกรมอีกครั้ง โปรดสังเกตว่า คุณสามารถเรียกใช้รหัสหลายครั้งโดยไม่ได้รับข้อผิดพลาด

ข้อมูลอ้างอิง

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

แฟ้มวิธีใช้ระบบอัตโนมัติของ Microsoft Office 97 167223ที่พร้อมใช้งาน

189618คุณอาจได้รับข้อความข้อผิดพลาด "ข้อผิดพลาดรันไทม์ '-2147023174' (800706ba)" หรือ "รันไทม์ข้อผิดพลาด '462' " เมื่อคุณเรียกใช้รหัส Visual Basic ที่ใช้ดำเนินการอัตโนมัติเพื่อควบคุม Word

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

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

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

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

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

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

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

×