求大佬指点!!!如何改善word中这段VBA代码
想实现的功能是:在文档中查找到类似“同比增加XXX万/亿”的表述都自动标红,目前这段代码只能实现“同比增加XXX”标红,无法将单位“万/亿”一起标红,问了ai一直解决不了,求大佬指教!
示例文本:
同比增加2222万,同比增加11万,同比增加111万,同比减少234万,同比增加1亿,同比增加0.16亿
同比增加2亿,同比增加1.23亿,同比增加1500万,同比减少23万 ,同比增加235亿
同比增加500万,显示出良好的增长趋势。
同比增加1.5亿,这对公司来说是一个重大里程碑
使用的版本是:WPS 12.1.0.18912
代码如下:
Sub Highlight同比增加()
Dim oRange As Range
Dim found As Boolean
Dim startPos As Long
Dim endPos As Long
Dim searchText As String
Dim char As String
' 设置查找文本
searchText = "同比增加"
' 获取文档内容范围
Set oRange = ActiveDocument.Content
' 查找“同比增加”
With oRange.Find
.Text = searchText & "*"
.Forward = True
.Wrap = wdFindContinue
.MatchCase = False
.MatchWildcards = True
End With
' 开始查找
found = oRange.Find.Execute
' 循环查找并标红
Do While found
' 获取当前找到的位置
startPos = oRange.Start
endPos = oRange.End
' 扩展范围到包含数字和单位
Do
char = Mid(ActiveDocument.Content.Text, endPos + 1, 1)
If char Like "[0-9.]" Or char = "万" Or char = "亿" Then
endPos = endPos + 1
Else
Exit Do
End If
Loop
' 标红完整范围
oRange.SetRange Start:=startPos, End:=endPos - 1
oRange.Font.Color = RGB(255, 0, 0)
' 移动到下一个搜索位置
oRange.Start = endPos + 1
found = oRange.Find.Execute
Loop
End
' 提示完成
MsgBox "已成功标红所有相关内容!", vbInformation
End Sub
相关推荐
VBA代码大全大量的应用实例,WORD形式
vba代码大全,大量的应用实例,WORD形式,粘贴在VBA上就可以测试了。vba代码大全,大量的应用实例,WORD形式,粘贴在VBA上就可以测试了。vba代码大全,,粘贴在VBA上就可以测试了。
A4田字格硬笔书法比赛用纸:Word表格与Python批量生成
在文档自动化中,参数化排版把纸张、边距、行列数等视为可计算变量,而非手工拖拽的静态格式。其原理是先由版心反推格子尺寸和行列数,再锁定行高、列宽与边框样式,从而保证打印比例稳定。技术价值在于可将 Word/PDF 模板复用与批量套打,降低重复设置和误差。典型场景包括比赛用纸、稿纸、练字帖与证书等可打印文档。围绕 A4 田字格硬笔书法比赛用纸,Word 表格母格复刻、python-docx 与 reportlab 直出 PDF、邮件合并套打姓名座号,都是同一套参数化思路的落地。
word VBA邮件合并及批量生成单个文档
数据源为excel,word中建立表模板,利用邮件合并功能实现批量填表,利用VBA技术将填表结果分成独立的文档
EXCEL与WORD相互写入VBA代码
EXCEL与WORD相互写入VBA代码 在工作中相当方便,如写财务分析,在EXCEL中完成数据加工,并用公式写出部分财务分析指标,再将这些文字与数据写入WORD,相当的实用
VBA代码把一个多页的word拆分成任意页数的多个文档
VBA代码把一个多页的word拆分成任意页数的多个文档,可直接粘贴运行。


Office开发/ VBA
