如何复制特定文字?

时间:2015-01-25 19:55:46

标签: vba ms-word word-vba

我有一百个单词文件一次只能工作一个,每个单词都有这样一行(不在同一个相对位置):

  

PROC。 n°0032545-15.2012.8.19.0053

我需要一个只复制序列号的代码,在本例中为0032545-15.2012.8.19.0053,然后我可以用它来粘贴。它不需要压制点。

我试过的代码复制了整行,但我只能从前面的零复制 之后,我需要光标转到文件的特定部分(在这种情况下,12.12.13一行,但它不会!这是我到目前为止所尝试的:

Sub Macrovolta2()
    With Selection.Find
        .Text = "Proc. nº "
        .Execute Forward:=True
        Selection.MoveRight Unit:=wdCharacter, Count:=25, Extend:=wdExtend
        Selection.Copy
    End With

    With Selection.Find
        .ClearFormatting
        .Text = "12.12.13"
        .Execute Forward:=True
        Selection.MoveUp Unit:=wdLine, Count:=1
    End With
End Sub

1 个答案:

答案 0 :(得分:0)

录制你的宏。 Atl T,M,R。

您可能会发现F8功能很有用。按F8和要选择的字符。

所以搜索Proc,按向右箭头键到数字的开头,然后F8和空格将选择到下一个空格(假设数字后面有一个),然后按Shift +向左箭头缩小选择,使得尾随空间没有被选中。

另一种方法是搜索数字,如果它是一致的格式。

^#^#^#^#^#^#^#-^#^#.^#^#^#^#.^#.^#^#.^#^#^#^#

^#表示任何数字。以上是您的号码。

Word的搜索选项使用通配符可以打开正则表达式。您可以搜索并拉出子串。

Proc. nº ([0-9]{7}-[0-9]{2}.[0-9]{4}.[0-9].[0-9]{2}.[0-9]{4})

只访问数字使用\ 1(指代括号()中的第一项)。 [0-9]表示任何数字。 {4}表示前一个字符中的4个。