下面是一段使用正则表达式的VBA代码,可以将Word文档中所有符合条件的数字标记为红色字体并加粗(注意:数字只能有一个小数点):
```
Sub MarkNumbers()
Dim rng As Range
Dim regEx As Object
Dim matches As Object
Dim match As Object
'设置查找范围为整个文档
Set rng = ActiveDocument.Range
'创建正则表达式对象
Set regEx = CreateObject("VBScript.RegExp")
'设置正则表达式模式
regEx.Pattern = "([0-9]*\.?[0-9]+)元"
'循环查找所有匹配项
Do While regEx.Test(rng.Text)
'获取匹配项
Set matches = regEx.Execute(rng.Text)
'遍历匹配项
For Each match In matches
'将找到的数字标记为红色字体并加粗
rng.Start = match.FirstIndex
rng.End = match.FirstIndex + Len(match.SubMatches(0)) + 1
rng.Font.ColorIndex = wdRed
rng.Font.Bold = True
Next
'将查找范围移动到下一个位置
rng.Start = rng.End
Loop
End Sub
```
在这段代码中,我们使用了VBScript的正则表达式来查找文档中的数字。通过设置`regEx.Pattern`属性为`"([0-9]*\.?[0-9]+)元"`,我们可以使用正则表达式来匹配任意一个小数点左边的数字,并且该数字后面跟着“元”字。然后,我们使用`regEx.Execute`方法来执行查找操作,并在每次找到匹配项时将其标记为红色字体并加粗。
要运行这段代码,只需打开Word文档,按下`Alt + F11`打开VBA编辑器,将代码复制粘贴到新模块中,