【问题标题】:Pulling MS Word Content Control from another Word Doc Content Contol从另一个 Word Doc 内容控件中提取 MS Word 内容控件
【发布时间】:2020-08-18 23:07:32
【问题描述】:

我这里有一些代码可以打开两个 word 文档,我正在尝试将一个内容控件(富文本)的内容传输到另一个文档富文本内容控件。一切都正确传输,但由于某种原因,在它复制自身之后,它只是不断粘贴新的空白行,并且永远不会移动到 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

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    从您发布的代码中,我看不出代码卡住的任何原因,但无需使用剪贴板。相反,您可以简单地将一个范围的文本或格式化文本分配给另一个范围,如下所示:

      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
    

    【讨论】:

    • 谢谢@Timothy,但是当我运行此程序时,我收到“不支持此类接口”错误。我也检查了 MS Word 16 库。有什么想法吗?
    • CC.Range.FormattedText = pcm.SelectContentControlsByTag(CC.Tag).Item(1).Range.FormattedText
    • @MattHenry 即使源代码控件是纯文本而不是富文本控件,我也没有收到任何错误代码。我正在使用 O365。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2011-04-06
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多