首页 > 解决方案 > Excel VBA 宏后期绑定

问题描述

我在 Excel 文件中嵌入了 Word 文档。我使用下面的宏将单元格值从 Excel 复制到嵌入的 Word 文档书签。宏在 Excel 2016 中工作正常。问题是我需要在几个 Excel 版本的宏中使用它。当我尝试在 Excel 2010 中打开 XLS 文档并运行宏时,我收到以下错误:“在隐藏模块 1 中编译错误。此错误通常发生在代码与版本不兼容时...”我想我必须翻译我的代码使用后期绑定,因此它不使用 VBA 项目引用。请帮忙!

Sub update_bookmark()

Dim oRng As Word.Range

 Set objWordTemplate = Sheets("Form1").OLEObjects("Object 1")
 objWordTemplate.Activate
 objWordTemplate.Object.Application.Visible = True
 Worksheets("source_sheet").Activate

 Set oRng = ActiveDocument.Bookmarks("name").Range
 oRng.Text = Cells(Application.ActiveCell.Row, 2)
 ActiveDocument.Bookmarks.Add "name", oRng

 End

End Sub

标签: excelvbams-wordlate-binding

解决方案


取消选中 Word 参考并更新您的代码,如下所示:

Sub update_bookmark()

Dim oRng As Object
Dim objWordTemplate as Object
 Set objWordTemplate = Sheets("Form1").OLEObjects("Object 1")
 objWordTemplate.Activate
 objWordTemplate.Object.Application.Visible = True
 Worksheets("source_sheet").Activate

 Set oRng = objWordTemplate.Object.Application.ActiveDocument.Bookmarks("name").Range
 oRng.Text = Cells(Application.ActiveCell.Row, 2)
 objWordTemplate.Object.Application.ActiveDocument.Bookmarks.Add "name", oRng

End Sub

推荐阅读