如何解决从另一个Word Doc内容控制中提取MS Word内容控件
我这里有一些代码,可以打开两个Word文档,并且我试图将一个Content Control(Rich Text)的内容传输到另一个Documents Rich Text Content Control。一切都正确转移了,但是由于某种原因,它复制完自己之后,只会继续粘贴新的空白行,并且永远不会移至For Each循环中的下一个CC。有什么想法可以强制将其粘贴到下一个内容控件吗?我尝试过PasteandFormat,它也有同样的问题。
Sub PreClear()
Dim wrd As Word.Application
Dim wrdm As Word.Application
Dim pc As Word.Document
Dim pcm As Word.Document
Dim CC As ContentControl
Dim CCTag As String
Set wrd = CreateObject("Word.Application")
wrd.displayAlerts = 0
wrd.Visible = True
Set pc = wrd.Documents.Open("DestinationFilePath",ReadOnly:=True)
Set wrdm = CreateObject("Word.Application")
wrdm.displayAlerts = 0
wrdm.Visible = False
Set pcm = wrdm.Documents.Open("SourceFilePath",ReadOnly:=True)
For Each CC In pc.ContentControls
CCTag = CC.Tag
If CCTag <> "" And Left(CCTag,4) = "PCM_" Then
If CC.Type = wdContentControlRichText Or CC.Type = wdContentControlText Then
pcm.SelectContentControlsByTag(CCTag).Item(1).copy
CC.Range.Paste
End If
End If
Next CC
End Sub
解决方法
从您发布的代码中,我看不到代码被卡住的任何原因,但是不需要使用剪贴板。相反,您可以简单地将一个范围的文本或格式文本分配给另一个,如下所示:
If Left(CC.Tag,4) = "PCM_" Then
If CC.Type = wdContentControlRichText Then
CC.Range.FormattedText = pcm.SelectContentControlsByTag(CC.Tag).item(1).Range.FormattedText
ElseIf CC.Type = wdContentControlText Then
CC.Range.Text = pcm.SelectContentControlsByTag(CC.Tag).item(1).Range.Text
End If
End If
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。