0

我有一行文字写着“[EmbeddedReport]report 在这里[/EmbeddedReport]”。

我想用一个空字符串替换“报告到这里”,并将光标放在 [EmbeddedReport] 标记之后。然后我将运行以下代码...

With Selection.InsertFile ('c:\Temp\Report.rtf') 

那应该将报告的文本放在标记之间。我尝试使用以下代码定位光标。它似乎不起作用。

.Selection.Find 
.ClearFormatting 
.MatchWholeWord = False 
.MatchCase = False 
.Execute FindText:="report goes here" 

唯一的问题是光标不在 [EmbeddedReport] 和 [/EmbeddedReport] 之间,并且在运行宏之前将文件插入到光标所在的任何位置。

4

2 回答 2

2

您可能需要调用Find object两次:

FIRST-查找整个短语[EmbeddedReport]report goes here[/EmbeddedReport]SECOND-report goes here在第一步的结果中查找文本。重要 - 您不需要替换该短语 - 它将被选中并替换为您使用导入的文本Selection.InsertFile method

这是建议的代码(针对示例文件进行了测试):

 'FIRST- find [EmbeddedReport]report goes here[/EmbeddedReport]
    With Selection.Find
        .Text = "(\[EmbeddedReport\])text goes here(\[\/EmbeddedReport\])"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
    End With
    '...and select it
    Selection.Find.Execute

    'SECOND- find only text to replace 'text goes here'
    With Selection.Find
        .Text = "text goes here"
        .Replacement.Text = " "
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
    End With
    'end select it
    Selection.Find.Execute

    'now you could insert your file
    Selection.InsertFile "c:\Temp\Report.rtf"
于 2013-10-21T06:21:34.150 回答
0

解决此类问题的常用方法是录制宏 - 并执行移动光标和突出显示文本等所需的任务 - 然后检查宏为执行这些任务而编写的代码。这通常会给你洞察力来定制你自己的代码来执行相同的任务。

于 2013-10-21T04:39:59.570 回答