注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

奕克

爱家人爱工作爱生活

 
 
 

日志

 
 

利用VBA秒杀word重复性的格式设置办公任务  

2012-03-15 19:50:05|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
          这两天备课大学offiice基础,有这样一道办公任务,将如下的一个文档:
利用VBA秒杀word重复性的格式设置办公任务 - wucccsk - 我学故我乐的博客
        设置为如下的样式:
利用VBA秒杀word重复性的格式设置办公任务 - wucccsk - 我学故我乐的博客

  就是把1级标题设置为标题1样式,2级设置为标题2,并且在1级前插入一个分页符。当然不只这么一点,总共有十几点文字,意味着我要重复同样操作十几次。我照样画葫芦了3次就烦了,咱又不是富士康工人,没必要整天重复机械操作啊,于是乎写了一段vba代码,秒杀了这一任务:


Sub main()

Set Regex = CreateObject("VBSCRIPT.REGEXP")

Regex.Global = True

For Each p In ActiveDocument.Sentences

     Regex.Pattern = "^[一|二|三|四|五|六|七|八|九|十]*、"

     If Regex.Test(p) Then

        p.Select

        Selection.Style = ActiveDocument.Styles("标题 1")

        Selection.InsertBreak Type:=wdSectionBreakNextPage

     End If

     Regex.Pattern = "^([一|二|三|四|五|六|七|八|九|十]*)"

     If Regex.Test(p) Then

        p.Select

        Selection.Style = ActiveDocument.Styles("标题 2")

     End If

Next

Set Regex = Nothing

End Sub


     上述代码的核心思想是遍历文档所有句子,如果发现有以汉字数字开头加、号的,设置为1级标题,前面插入回车符。如果发现有()中的汉字数字的,设置为2级标题。具体的格式设置代码是通过录制宏获得的,只需要记住这种遍历模板就可以了。
      这里不得不提提正则表达式,VBA里的REGEX,用来匹配模糊字符串太方便了,以前都是用instr在vba里找匹配的,用在这种情况下代码就邋遢了,用正则很简洁。下面列出一些相关正则表达式介绍的网页,有兴趣可以参考:

 
  评论这张
 
阅读(469)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017