Thông báo lỗi khi bạn chạy một macro ghi cho một trang bìa trong Word 2007: "viên bộ sưu tập, yêu cầu không tồn tại"


Triệu chứng


Xem xét kịch bản sau đây. Bạn ghi lại macro cho trang bìa trong tài liệu Microsoft Office Word 2007. Sau đó bạn chạy macro ghi. Trong trường hợp này, bao gồm trang không được đưa vào. Ngoài ra, bạn nhận được thông báo lỗi sau:
Lỗi thời gian chạy '5941':

Thành viên yêu cầu của bộ sưu tập không tồn tại.

Giải pháp


Microsoft cung cấp mô hình lập trình để minh hoạ, không bảo hành hoặc rõ ràng hay ngụ ý. Điều này bao gồm, nhưng không giới hạn ở các bảo đảm cho một mục đích cụ thể hoặc sự. Bài viết này giả định rằng bạn đã quen với ngôn ngữ lập trình đang được giải thích và các công cụ được sử dụng để tạo và quy trình gỡ lỗi. Các kỹ sư hỗ trợ Microsoft có thể giúp giải thích các chức năng của một quy trình cụ thể, nhưng chúng sẽ không sửa đổi các ví dụ để cung cấp thêm chức năng hoặc xây dựng quy trình nhằm đáp ứng các yêu cầu cụ thể của bạn.

Để khắc phục sự cố này, lại ghi macro để sử dụng lớp mẫu.

Để thực hiện việc này trong Word 2007, hãy làm theo các bước sau:
  1. Trên thanh trạng thái , bấm Chơi Macro.
  2. Tên Macro, bấm để chọn các macro ghi, và sau đó nhấp vào chỉnh sửa.
  3. Thay thế mã ghi macro bằng mã macro giống như mã macro sau:
    Sub Macro1()
    For Each mytemplate In Templates
    If mytemplate.Name = "Building Blocks.dotx" Then _
    mytemplate.BuildingBlockEntries("Pinstripes").Insert Where:=Selection.Range, RichText:=True
    Next

    End Sub

    Lưu ý Nếu bạn muốn sử dụng một trang bìa khác nhau, thay thế "Pinstripes" với tên của trang bìa mà bạn muốn.
  4. Trên menu tệp , bấm đóng và quay lại Microsoft Word.

Thông tin


Khi bạn ghi lại macro trong Word 2007 cho "Pinstripes" trang bìa, Word 2007 ghi macro mã sau:
Sub Macro1()'
' Macro1 Macro
'
'
ActiveDocument.AttachedTemplate.BuildingBlockEntries( _
"PlaceholderAutotext_0").Insert Where:=Selection.Range, RichText:=True
ActiveDocument.AttachedTemplate.BuildingBlockEntries( _
"PlaceholderAutotext_1").Insert Where:=Selection.Range, RichText:=True
ActiveDocument.AttachedTemplate.BuildingBlockEntries( _
"PlaceholderAutotext_2").Insert Where:=Selection.Range, RichText:=True
ActiveDocument.AttachedTemplate.BuildingBlockEntries("Pinstripes").Insert _
Where:=Selection.Range, RichText:=True
End Sub