Excel VBA 宏后期绑定
Excel VBA macro late binding
我在 Excel 文件中嵌入了 Word 文档。我使用下面的宏将单元格值从 Excel 复制到嵌入式 Word 文档书签。宏在 Excel 2016 中运行良好。问题是我需要在几个 Excel 版本的宏中使用它。当我尝试在 Excel 2010 和 运行 宏中打开 XLS 文档时,我收到以下错误:"Compile error in hidden module1. This error commonly occurs when code is incompatible with the version..." 我想我必须翻译我的代码才能使用后期绑定,这样它不使用 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
当我尝试在 Excel 2010 和 运行 宏中打开 XLS 文档时,我收到以下错误:“隐藏模块 1 中的编译错误。
我无法复制,但我想这是因为在原始文件中有 xlsx 的引用 - Microsoft Office 16 Object Library 要查看,请检查 VBEditor>Tools>References .
后期绑定如:
Dim wdObject As Object
Set wdObject = CreateObject("Word.Application")
Dim orange as Object
set orange = ActiveDocument.Bookmarks("name").Range
可能是一个可行的解决方案。
取消选中 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
我在 Excel 文件中嵌入了 Word 文档。我使用下面的宏将单元格值从 Excel 复制到嵌入式 Word 文档书签。宏在 Excel 2016 中运行良好。问题是我需要在几个 Excel 版本的宏中使用它。当我尝试在 Excel 2010 和 运行 宏中打开 XLS 文档时,我收到以下错误:"Compile error in hidden module1. This error commonly occurs when code is incompatible with the version..." 我想我必须翻译我的代码才能使用后期绑定,这样它不使用 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
当我尝试在 Excel 2010 和 运行 宏中打开 XLS 文档时,我收到以下错误:“隐藏模块 1 中的编译错误。
我无法复制,但我想这是因为在原始文件中有 xlsx 的引用 - Microsoft Office 16 Object Library 要查看,请检查 VBEditor>Tools>References .
后期绑定如:
Dim wdObject As Object
Set wdObject = CreateObject("Word.Application")
Dim orange as Object
set orange = ActiveDocument.Bookmarks("name").Range
可能是一个可行的解决方案。
取消选中 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