gpt4 book ai didi

vba - VBA单词: I would like to find a phrase,选择其前面的单词,并以斜体显示文本

转载 作者:行者123 更新时间:2023-12-03 13:44:37 26 4
gpt4 key购买 nike

我在使用VBA命令查找某个短语,然后在其之前选择1个或2个单词,然后将整个内容斜体时遇到麻烦。

我可以彼此独立地使用Selection.FindFont.ItalicisewdExtend命令,但是当我将它们组合起来执行此任务时,宏就会崩溃。有什么帮助吗?

Selection.Find.ClearFormatting
With Selection.Find
.Text = "Michael"
.Replacement.Text = "Michael"
.Forward = True
.Wrap = wdFindStop
Do While .Execute() = True
Selection.TypeParagraph
Selection.MoveLeft Unit:=wdWord, Count:=2, Extend:=wdExtend
Selection.Find.Replacement.Font.Italic = True
Selection.Font.Bold = True
Selection.Collapse Direction:=wdCollapseEnd
Loop
End With

最佳答案

以下代码将执行您想要的操作。但是,我以我认为可以使您最好地理解它的方式编写它。

Private Sub SelFind()
' 08 Apr 2017

Dim Rng As Range
Dim Fnd As Boolean

Set Rng = Selection.Range
With Rng.Find
.ClearFormatting
.Execute FindText:="Michael", Forward:=True, _
Format:=False, Wrap:=wdFindStop
Fnd = .Found
End With

If Fnd = True Then
With Rng
.MoveStart wdWord, -2
With .Font
.Italic = True
.Bold = True
End With
End With
End If
End Sub

首先,想象一下文档中的所有字符串成一行,并散布着也被视为字符的格式代码。该长字符串在代码中称为 ActiveDocument.Range范围。

您可以选择文档整个范围的任何部分。这就是 Selection.Range,与所有范围一样,它都有一个Start(第一个字节)和一个End(最后一个字节。 StartEnd是用数字表示的 Range的属性,从第一个字节开始计数。我的代码创建了一个新的Range对象(称为Rng。Selection.Range)已分配给该新对象,此时 RngSelection.Range是相同的,但是当您操作 Rng对象时, Selection.Range不会改变。

现在,代码在 Rng对象中查找“Michael”。您设置搜索的语法非常完美。我使用了不同的语法,因为我发现它更容易理解。如果搜索成功,则 .Found属性返回True。在这种情况下,搜索范围将更改为仅包含找到的子范围。如果以 Selection.Range进行搜索,则会在屏幕上突出显示“Michael”。但是由于搜索是在内存中(在 Rng对象上)进行的,因此 Selection.Range保持不变,而 Rng对象现在仅包含单词“Michael”。

因此,返回到 ActiveDocument.RangeRng的一部分,现在我们将 Start属性向左移动两个词。正数会将其向右移2个字。不需要 Extend,因为命令非常清楚:“Move Start”(移动开始),这意味着End保留在原处。

现在,Rng对象以“Michael”开头两个单词,以“Michael”结尾。您可以复制或删除此范围,或根据需要对其进行修改。请记住,您的屏幕仍然显示原始的 Selection.Range。 MS Word不允许您分配 Set Selection.Range = Rng,但是有一种甚至更简单的方法来将显示与代码所做的操作重新对齐。通过在修改Font之后(在外部 .Select之前)添加 End With行,修改后的 Rng将成为Selection。

关于vba - VBA单词: I would like to find a phrase,选择其前面的单词,并以斜体显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43284752/

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