如何解决VBA 从一个 Word 文档复制到另一个从 Excel
我有一个 Excel 工作表,它打开一个空白 Word 文档作为“主”和一个“临时”单独的 Word 文档。我试图移到“Master”的末尾,复制整个“Temporary”并粘贴到“Master”,然后在“Master”上输入分页符。我在“.Selection.EndKey unit:=wdStory Extend:=wdMove”、“.Add.Content.Paste”和“.Selection.InsertBreak Type:=7”上遇到错误,我不知道为什么。我将迭代多个“临时”文档并将它们一个一个地添加到“主”,但不想移动到循环,直到我可以从“临时”到“主”进行一轮基本的复制粘贴。还有一个 boomark 替换子程序,我没有展示它来降低社区的复杂性,因此“临时”文档中的“Fields.Update”。
Public wb As Excel.Workbook
Public Path As String
Public MasterWordobj
Public MasterCOI
Public TempWordobj
Public TempCOI
Sub COI()
'Initialize Worksheet/Workbook and unprotect worksheet and cells
ActiveSheet.Unprotect
ThisWorkbook.Sheets("COI").Cells.Locked = False
Set wb = ActiveWorkbook
On Error GoTo ErrorHandler
'Path for Master COI Template
Path = "xxx"
'Create a Master Word Session
Set MasterWordobj = CreateObject("Word.Application")
Set MasterCOI = MasterWordobj.Documents.Add
'Define Path for Temporary COI Template
Path = "XXX"
'Create a Temp Word Session
Set TempWordobj = CreateObject("Word.Application")
Set TempCOI = TempWordobj.Documents.Add(Path)
'Activate Temporary Word Template,Update Fields,copy All
With TempWordobj
.Visible = True
.Selection.WholeStory
.Selection.Fields.Update
.Selection.WholeStory
.ActiveWindow.WindowState = 1
.Activate
.Selection.WholeStory
.Selection.copy
End With
'Paste and insert Page Break in Master Template
With MasterWordobj
.Visible = True
.ActiveWindow.WindowState = 1
.Selection.EndKey unit:=wdStory,Extend:=wdMove
.Add.Content.Paste
.Selection.InsertBreak Type:=7
.Activate
End With
'Release the Word objects to save memory and exit macro
ErrorExit:
Set MasterWordobj = nothing
Set TempWordobj = nothing
Exit Sub
'Error Handling routine
ErrorHandler:
If Err Then
MsgBox "Error No: " & Err.Number & "; There is a problem"
If Not MasterWordobj Is nothing Then
MasterWordobj.Quit False
End If
If Not TempWordobj Is nothing Then
TempWordobj.Quit False
End If
Resume ErrorExit
End If
End Sub
解决方法
如果您尚未在 Excel VBA 项目中添加对 Word 的引用,则您的 Excel VBA 将无法使用 wdStory 等常量。如果您在模块中使用 Option Explicit(您绝对应该这样做),则会标记出这一点。
您要么需要添加引用,要么在 VBA 中声明缺少的常量及其值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。