【发布时间】:2021-04-15 17:37:59
【问题描述】:
所以我有这个代码,它将文本中的每个 X 替换为“Asunto (1,2,..): Expediente N°”。我尝试设置这部分代码的样式: 我想要的是在 Arial 11 Bold 中替换 X 的文本
.Text = "Asunto" & " " & i & " " & "Expediente N°"
我试过了,但样式适用于整个文档,而不仅仅是那个文本,我不知道还能尝试什么
Sub Macro1()
'
' Macro1 Macro
'
'
Application.ScreenUpdating = False
Dim i As Long
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "X"
.Replacement.Text = ""
.Format = False
.Forward = True
.Wrap = wdFindStop
.MatchWildcards = True
.Execute
End With
Do While .Find.Found
i = i + 1
.Text = "Asunto" & " " & i & " " & "Expediente N°"
.Find.Execute
.Collapse wdCollapseEnd
.Find.Execute
Loop
With .Font
.Bold = True
.Name = "Arial"
.Size = 11
End With
Application.ScreenUpdating = True
MsgBox i & " Coincidencias."
End With
End Sub
【问题讨论】:
-
我看到您在哪里搜索值 X 并将其替换为另一个值。我看不到您尝试在哪里设置文本样式。你想应用什么风格?
-
我编辑了代码,这样你就可以看到我做了什么,我尝试了这样的样式,但它不仅适用于我想要替换的文本,而且适用于整个文本。我已经解决了快捷方式问题,现在我只需要在 Do while 下设置文本样式
-
With .Font块需要在Do While循环内,紧跟在.Text =之后
标签: vba events ms-word shortcut