复制格式化的文本和带有格式的粘贴

时间:2018-11-25 20:51:32

标签: vba format selection

在Windows 10下使用WORD2010,我想复制一篇文章的所有标题并将它们作为列表布置在文本末尾。

我首先尝试了一个数组。我通过Selection.formattedText将图形标题复制为字符串,将它们放入数组中,并使用Selection.typeText将字符串作为列表插入到word文档的末尾。 自然地,问题是格式例如不保留希腊字母和下标字母的符号。 因此,我想使用Selection.CopyFormat,然后使用selection.replacement.text = Selection.FormattedText。当然,同样的问题。 原则上,这似乎可行,因为复制后直接粘贴文本即可得到写入格式。 但是,我要复制它,然后在文档末尾搜索某个“虚拟”字符串(图_XX_1),然后用复制的文本替换所选的虚拟字符串。在这种情况下,我总是得到剪贴板中复制的最后插入的代码(在启动宏之前),而不是复制的文本。我不知道为什么会这样。

Sub Makro1()
'
   Selection.WholeStory
   With Selection
    .EndKey Unit:=wdStory, Extend:=wdMove
    .InsertBreak Type:=wdSectionBreakNextPage
    .InsertAfter ("Titles of Figures" & Chr(13) & "Figure_XX_1")&Chr(13)
    End With
   ActiveDocument.InlineShapes(12).Select
  Selection.GoTo What:=wdGoToField, Which:=wdGoToNext, Count:=1, Name:="SEQ Figure *"
    Selection.EndKey Unit:=wdLine
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.HomeKey Unit:=wdLine
    Selection.Paragraphs(1).Range.Select ' select figure caption        
    Selection.CopyFormat      ' copy figure caption

    With Selection
    .Find.Text = "Figure_XX_1"
    .Find.Execute
    .PasteAndFormat (wdFormatOriginalFormatting)
    End With            
  End Sub

有人可以帮助我插入复制的格式化文本吗?我不喜欢用选择编程,但是看不到其他保持格式的方法。 有没有办法用unicode保留希腊字母? 然后,我将通过随后通过一些代码验证替代来单独处理下标问题。 还是有一种方法可以使上面的代码以所需的方式运行?

非常感谢..

0 个答案:

没有答案