我将 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
但是,上述方法不起作用。