全民一起VBA提高篇第十二课:调用WORD

VBA操作word

标记数字

要求:将word 文档中的所有数字标记出来
在这里插入图片描述

在这里插入图片描述

Sub 修改word的所有数字()
	t = Timer()
    Dim i As Long, c As Range, d As Document
    '遍历该段落中全部字符
    For i = 1 To Application.ActiveDocument.Characters.Count    
    '将第i个字符构成的range对象赋给c
        Set c = Application.ActiveDocument.Characters(i)        
        If IsNumeric(c.Text) Then
	        'range.value在word中为range.text       
	        c.Bold = True
	        c.Font.ColorIndex = wdRed
	        c.Italic = True       
        End If   
    Next i
	MsgBox "一共用了" & Timer() - t & "秒"
End Sub

注意事项:第一是要写在word中间而不是excel里面
第二是要启用docm而不是docx

上述代码工作效率较低,一页文档几百个字符用了4分钟才处理完,具体技术优化暂时还做不到,留个坑以后填

在word中的数组都是一维的,没有行和列这种概念
range(3,8)从第3号字符开始,到第8号字符之前结束,从0开始编号
得到34567这5个字符

运用正则表达式

找出所有百分数
在这里插入图片描述
在这里插入图片描述

如果把上述正则表达式改为"\d",按理上也是找到所有的数字,效率会高很多,一秒都不需要

不过我只在整个论文的摘要页使用,没有问题,但是推广到全文,就有很多意想不到的错误

我直接用上述代码推广到全文,也出现了一些意想不到的错误,但是我单独把段落复制到正则表达式检测器里面,又发现表达式没有问题,所以这里继续留坑


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值