gpt4 book ai didi

vba - 仅搜索用户选择的文本

转载 作者:行者123 更新时间:2023-12-02 21:43:59 24 4
gpt4 key购买 nike

我习惯于使用 Selection.WholeStory,但现在有一个宏,我可以在其中进行大量搜索和替换操作。我只希望模块在运行宏之前在用户选择的选择中进行搜索和替换。

我该怎么做?我尝试过 Selection.Text,但 Word 告诉我这是对 Text 属性的无效使用。

添加:我的模块是这样启动的

Sub Bibliography()

With ActiveDocument
.TrackRevisions = False
.PrintRevisions = False
.ShowRevisions = False
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting

通过不指定选择对象,我应该只获得用户在运行宏之前已经做出的选择。但这似乎不起作用。例如,下面的代码更改整个文档中的出现情况,而不仅仅是用户所做的选择

With Selection.Find
.Text = "%"
.Replacement.Text = " %"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

最佳答案

在我看来,你只需要更改一行:

.Wrap = wdFindContinue

进入这个:

.Wrap = wdFindStop

但还要记住,如果没有选择任何内容(单个光标闪烁),那么您的代码将在整个文档中运行。为了避免这种情况,您可以尝试 Mehow 解决方案(不确定它是否有效),或者您可以在开头添加简单的 if 语句:

If Selection.Range.Start = Selection.Range.End Then
MsgBox "Select something, please!"
Exit Sub
End If

关于vba - 仅搜索用户选择的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19902424/

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