Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Triệu chứng

Khi bạn chạy mã Microsoft Visual Basic sử dụng tự động hóa để điều khiển Microsoft Word, bạn có thể nhận được một trong các thông báo lỗi sau đây:thông báo lỗi 1

Lỗi thời gian chạy '-2147023174 ' (800706ba) lỗi tự động hóa

Thông báo lỗi 2

Lỗi thời gian chạy ' 462 ': máy chủ từ xa không tồn tại hoặc không sẵn dùng

Nguyên nhân

Visual Basic đã thiết lập một tham chiếu đến Word do một dòng mã có cuộc gọi đối tượng, phương pháp hoặc thuộc tính của Word mà không có đủ điều kiện với biến đối tượng từ. Visual Basic không phát hành tham chiếu này cho đến khi bạn kết thúc chương trình. Tham chiếu sai sót này liên kết với mã tự động hóa khi mã được chạy nhiều hơn một lần.

Giải pháp

Sửa đổi mã để mỗi cuộc gọi đến một đối tượng Word, phương pháp hoặc thuộc tính có đủ điều kiện với biến đối tượng thích hợp.

Trạng thái

Hành vi này là do thiết kế.

Thông tin Bổ sung

Để tự động hóa Word, bạn đã thiết lập một biến số đối tượng thường tham chiếu đến đối tượng ứng dụng Word hoặc tài liệu. Sau đó, các biến đối tượng khác có thể được đặt để tham chiếu đến một vùng chọn, phạm vi hoặc các đối tượng khác trong mô hình đối tượng Word. Khi bạn viết mã để sử dụng một đối tượng Word, phương pháp hoặc thuộc tính, bạn nên luôn đứng trước cuộc gọi với biến thể đối tượng thích hợp. Nếu bạn không, Visual Basic sử dụng tham chiếu biến toàn cầu ẩn mà nó đặt thành ví dụ hiện đang chạy. Nếu Word đang tắt hoặc nếu biến đối tượng đã được phát hành, biến thể hiện toàn cầu ẩn sẽ tham chiếu đến đối tượng không hợp lệ (bị hủy). Khi chạy lại mã tự động, các cuộc gọi đến biến số đối tượng ẩn này sẽ không thành công với lỗi đã nói. Các bước sau đây minh họa cách tái tạo vấn đề này và cách sửa nó.

Các bước để tái tạo hành vi

  1. Bắt đầu một dự án EXE tiêu chuẩn mới trong Visual Basic. Form1 được tạo theo mặc định.

  2. Bấm tham chiếu từ menu dự án , rồi bấm vào một trong các tùy chọn sau:

    • Đối với Office Word 2007, hãy bấm Thư viện đối tượng Microsoft Word 12,0

    • Đối với Word 2003, hãy bấm Thư viện đối tượng Microsoft Word 11,0

    • Đối với Word 2003, hãy bấm Thư viện đối tượng Microsoft Word 10,0

    • Đối với Word 2000, bấm vào Thư viện đối tượng Microsoft Word 9,0.

    • Đối với Word 97, bấm vào Thư viện đối tượng Microsoft Word 8,0.

  3. Đặt một nút Commanda trên Form1.

  4. Sao chép mã sau đây vào cửa sổ mã của 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. Trên menu chạy , bấm vào bắt đầu hoặc nhấn phím F5 để bắt đầu chương trình.

  6. Bấm vào nút Commandor. Không có lỗi nào xảy ra. Tuy nhiên, tham chiếu đến Word đã được tạo ra và chưa được phát hành.

  7. Bấm vào nút Commandagain và lưu ý rằng bạn nhận được lỗi đã được mô tả trước đó.Lưu ý Lỗi xảy ra vì mã tham chiếu đến phương pháp InchesToPoints mà không có trước cuộc gọi với biến đối tượng oWord.

  8. Ngừng dự án và thay đổi dòng sau đây:

    .PageSetup.LeftMargin = InchesToPoints(1.25)

    cho

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
  9. Chạy lại chương trình. Sau đó, bấm vào nút Commandor. Không có lỗi nào xảy ra.

  10. Bấm vào nút Commandagain và lưu ý rằng bạn nhận được lỗi.Lưu ý Lỗi xảy ra vì mã tham chiếu đến đối tượng phạm vi ActiveDocument của một trong số đó mà không có trước cuộc gọi với biến đối tượng oWord.

  11. Ngừng dự án và thay đổi dòng sau đây:

    Set oRange = ActiveDocument.Sections(1).Range

    cho

    Set oRange = oWord.ActiveDocument.Sections(1).Range
  12. Chạy lại chương trình. Lưu ý rằng bạn có thể chạy mã nhiều lần mà không có lỗi.

Khi xây dựng một từ tự động hóa dự án Visual Basic, nếu dự án của bạn có tham chiếu đến thư viện đối tượng Microsoft Word, mã mẫu cho đối tượng, phương pháp và thuộc tính của mô hình đối tượng Word sẵn dùng từ tệp trợ giúp từ. Khi con trỏ ở trên một từ khóa trong mã của bạn, bạn sẽ thấy bất kỳ văn bản trợ giúp áp dụng nào bằng cách nhấn phím F1. Mã mẫu trong chủ đề trợ giúp sẽ là mã Microsoft Word Visual Basic cho ứng dụng. Nó sẽ không hiển thị tham chiếu đối tượng mà mã Visual Basic của bạn yêu cầu. Bạn sẽ cần phải thêm vòng loại phù hợp.

Tham khảo

Để biết thêm thông tin, vui lòng xem các bài viết sau đây trong cơ sở tri thức Microsoft:

178510 PRB: phương pháp tự động hóa của đối tượng _Global ' không thành công

167223 Tệp trợ giúp tự động hóa của Microsoft Office 97 sẵn dùngĐể biết thêm thông tin về việc tự động hóa các ứng dụng Office, hãy bấm số bài viết bên dưới để xem bài viết trong cơ sở kiến thức Microsoft:

222101 HOWTO: tìm và sử dụng tài liệu mô hình đối tượng Office

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×