gpt4 book ai didi

vba - 在MS Word 2010的整个文档中查找和替换文本(包括表格)

转载 作者:行者123 更新时间:2023-12-04 09:18:35 25 4
gpt4 key购买 nike

我有一个MS Word文档,其中包括一个表格。我正在尝试使用以下代码通过VBA查找和替换文本:

If TextBox1.Text <> "" Then
Options.DefaultHighlightColorIndex = wdNoHighlight
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Highlight = True
With Selection.Find
.Text = "<Customer_Name>"
.Replacement.Text = TextBox1.Text
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With

Selection.Find.ClearFormatting
With Selection.Find.Font
.Italic = True
End With
Selection.Find.Replacement.ClearFormatting
With Selection.Find.Replacement.Font
.Italic = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End If

这对于替换表之外的所有 我的所有内容都很好。但是它不会替换表中的任何内容。

最佳答案

如果您的目标是在整个文档中执行替换操作(从代码看起来像这样,但不是明确的),建议您使用Document.Range而不是Selection对象。使用Document.Range将确保所有内容都被替换,即使在表内部也是如此。

而且,它对用户更透明,因为宏不会移动光标(或选择)。

Sub Test()
If TextBox1.Text <> "" Then
Options.DefaultHighlightColorIndex = wdNoHighlight
With ActiveDocument.Range.Find
.Text = "<Customer_Name>"
.Replacement.Text = TextBox1.Text
.Replacement.ClearFormatting
.Replacement.Font.Italic = False
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End If
End Sub

关于vba - 在MS Word 2010的整个文档中查找和替换文本(包括表格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18609963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com