2

我将 VB.NET (VS2012) 和 Word (2013) 与 Word 14 互操作一起使用。注意:我没有在 Word 中使用 VBA,也不能将其用作解决方案。

我正在尝试在文档中对键值对的所有实例进行搜索和替换,并且可以使用Word.Document.Find.Execute()命令轻松完成此操作。

但是,我还需要调整LeftIndent单词所在段落的 ,因为替换文本(例如“XXXXXXXXXX”)大于它正在替换的文本(例如“XXXXX”)并且区域不大足够的。

所以我一直在尝试以下,但段落缩进并没有改变。注意:dicWords只是一个带有我的查找/替换单词的字典。

Imports Microsoft.Office.Interop.Word

' Open Word document
Dim WordApp As New Application
Dim WordDoc As Document = WordApp.Documents.Open(WordFile.FullName, False, True, False)

' Loop through the dictionary of parts and find/replace
Dim pair As KeyValuePair(Of String, String)
For Each pair In dicWords

    ' Replace text
    Dim bFound As Boolean = False
    Do
        ' Do Search
        bFound = WordDoc.Content.Find.Execute(FindText:=pair.Key, ReplaceWith:=pair.Value, Replace:=WdReplace.wdReplaceOne, Wrap:=WdFindWrap.wdFindContinue)
        If bFound = True Then
            ' The range should be set from above Find, so now set the LeftIndent
            WordDoc.Content.ParagraphFormat.LeftIndent = 5
        End If

    Loop While bFound = True

Next

但是,上述方法不起作用。

4

1 回答 1

0

尝试:

WordDoc.Selection.Range.ParagraphFormat.LeftIndent = 5
于 2013-02-17T22:38:07.937 回答