最近在做word vba项目,遇到个需求,需要根据条件判断批量输出打√的方框和不打√的方框,类似如下图所示:

本来以为是个很容易的事情,没想到阻碍不小。

首先,我们先看看如何在word文档中手动输入带√的框。

对于在word中输入打√的方框,只要打开百度搜索一下,就可以找到一系列教程,教怎么在Word中输入打√的方框。

这里,小编推荐本人最喜欢的2种方法,也是最容易记住和操作的方法。

第一种,用搜狗拼音输入法,打一个√符号,然后在“开始”选项卡下的“字体”组中选择“带圈字符”,圈号选择“方框”。

第二种,输入一个大写的R,然后字体选择“Wingdings 2”即可。

在word中手动插入带√的方框,看上去就是这么简单,但是当你要把这个字符放到vba中去,会发现变样了。

通过带圈字符生成的打√的方框,复制到vba中被拆分成了方框和√两个字符。

通过字体显示的打√方框拷贝到vba中显示的是原来的字符R。

怎么办,怎么办?如何才能通过vba在word文档中输出打√的方框呢?

这里提供一种思路,仅供参考,如果您有更好的方法,请在评论区告诉我们。

回想刚才手动插入的过程,既然可以通过输入一个大写的R,然后字体选择“Wingdings 2”即可显示为打√的方框,我们为何不能在vba中先用大写的R代替该字符,然后输出在word中,再批量设置字体为“Wingdings 2”呢?

为此,我们将整个算法写成如下的形式:

将打√的方框表示为一个复杂的字符串(这个字符串不可能与整个word文档中的其它字符串重复,不能仅仅表示为大写字母R,因为有可能其它word字符串中也含有大写字母R),然后用word的查找替换,批量查找该复杂的字符串,替换为大写的R,同时替换设置字体格式为Wingdings 2。

代码如下:

Sub exceloffice()Dim oDoc As DocumentSet oDoc = Word.ActiveDocumentDim oRng As RangeSet oRng = oDoc.Content Arr = Array(“1、重大决策□”, “2、重要干部任免、奖惩□”, “3、重大项目安排□”, “4、大额资金使用□”, “5、其他□”)‘条件是“重大决策”sText = “重大决策”For i = 0 To UBound(Arr)If Arr(i) Like “*” & sText & “*” Then‘将满足条件的项目的无√框替换为一个特殊的字符串,这里是8个美元符号组成的生僻词,在word文档中不可能出现这样的词”Arr(i) = VBA.Replace(Arr(i), “□”, “$$$$$$$$”)End IfNext iWith oRng.Text = Join(Arr, vbTab)With .Find‘查找特殊的字符串.ClearFormatting.Text = “$$$$$$$$”With .Replacement.ClearFormatting‘替换为大写字母R.Text = “R”‘要替换的格式.Font.Name = “Wingdings 2”End With‘批量查找替换.Execute Format:=True, Replace:=wdReplaceAllEnd WithEnd WithEnd Sub

了上述方法,还可以用vba模拟第一种手动插入的方法,生成带圈的字符的方式,但是用上述代码可以非常完美的解决在word文档的任意位置插入打√的方框的问题,从而不用去考虑打√的方框在word文档中的位置,灵活性较好。

如何用word写书_如何用vba在word中添加打勾的方框?相关推荐

  1. python读取只读word只读_人生苦短我学Python——Word处理之快速Word转PDF

    上回书说到Python对于Excel的操作,本回书咱们来说一说Python对于Word的操作.这次的需求是这样的:把若干个Word文档转换为PDF格式.起因呢,是因为公司经常会披露公告.法律文件等,这 ...

  2. python生成word目录_使用Python更新MS Word .docx文档的目录(目录)

    我使用python包" python-docx"来修改MS Word .docx文档的结构和内容.该软件包无法更新TOC(目录)[Python: Create a "Ta ...

  3. python word处理_妙用Python将word文件转换成html 方法超简单

    什么方法可以将word文件转换成html,找了一圈,没有发现合适的应用可以把word或indd转化成干净的html.机缘巧合,无意间听说python很擅长文本处理,用Python将word文件转换成h ...

  4. excel透视表无添加字段_在Excel数据透视表中添加过滤器标记

    excel透视表无添加字段 If you're using Excel 2007 or Excel 2010, you can quickly see which fields in a pivot ...

  5. 符号在excel中的引用_如何在Excel工作表中添加表情符号

    &符号在excel中的引用 In the old days, we typed emoticons in our messages, to show a grin, or wink, etc. ...

  6. 如何用word写书_如何将100页PPT转换成Word?1键轻松搞定,看完你还用复制黏贴吗...

    我们平常使用的office软件,就是一个强大的格式转换器!今天就和大家分享一下PPT中的多种格式转换方法,一起学习学习~ 一.PPT常用转换格式 1.PPT转Word 我们经常使用的PPT就自带转Wo ...

  7. 帆软公式如何用数据库字段_如何用WORD书写三角函数公式?如何快速记忆诱导公式?...

    孩子自进入高中后就感觉数学有点吃力,特别是三角函数公式繁多,记忆起来很费劲,我决定把高中数学的三函数整理汇总,整理出方便快捷的记忆口诀来减轻孩子的负担,正好利用寒假一块儿来攻克下,那问题来了: 如何用 ...

  8. 项目如何用jetty运行_如何用Cloudbase Framework部署一个Vue项目?

    Cloudbase Framework 是云开发官方出品的前后端一体化部署工具,无需修改业务代码,就能将 Vue 应用前后端一键托管部署在云开发平台.借助于 Cloudbase Framework,你 ...

  9. 计算器百分号如何用代码实现_如何用 100 行 Python 代码实现新闻爬虫?这样可算成功?...

    每天我都要坐地铁上班,而地铁里信号差.但我希望在坐地铁的时候读些新闻,于是就写了下面这个新闻爬虫.我并没有打算做很漂亮的应用,所以只完成了原型,它可以满足我最基本的需求.其思路很简单: 找到新闻源:用 ...

最新文章

  1. shap_value
  2. element显示true或者false_element-ui轮播的简单实现
  3. 大话数据结构 06:栈 顺序存储结构
  4. ORA-00980与PL/SQL程序编译出错
  5. 工业交换机中:千兆级别和快速级别传输效率对比
  6. 淘宝网Java五面:现场面试49题含答案!
  7. roads 构筑极致用户体验_万物互联大势所趋 华为保驾护航运营商“三个转型”...
  8. 跟周报焦虑说拜拜!Excel打通FineBI,到底有多香
  9. DevOps:让开发和运维告别“相爱相杀”
  10. 单片机c语言 arduino,单片机C语言程序设计实训100例——基于Arduino+Proteus仿真
  11. OverflowError: int too large to convert to float
  12. 使用Subversion进行版本控制
  13. css中怎么改变图片尺寸,CSS也可以改变图片幅面尺寸
  14. 常州大学/教务系统/教室相关
  15. 分享下nas使用技巧,以及最简单的远程开机(用HS-200S做演示)
  16. mysql数据库储存过程
  17. Oracle常見問題查詢
  18. matlab小数分数互换
  19. struts2值栈、struts2标签、ONGL表达式、EL表达式、JSTL表达式、jsp标签
  20. 关于C语言中的重点转义字符详解

热门文章

  1. [开发笔记]-C#获取pdf文档的页数
  2. 浅谈网站流量构成比例
  3. Oracle 客户端工具
  4. OJ1063: 最大公约与最小公倍(C语言)
  5. html暂停计时器,JS实现可暂停秒表计时器效果的方法
  6. java代码如何删除文件_Java如何删除文件和目录代码? 爱问知识人
  7. 信息学奥赛一本通 1312:【例3.4】昆虫繁殖
  8. 理论基础 —— 索引 —— 稠密索引
  9. 信息学奥赛C++语言:5个人分糖块
  10. 19 不能为条目xxxx PRD确立账户