最近在做word VBA项目,如下图所示,有必要根据条件判断不与大量输出战斗的箱子。
本以为这是件容易的事,没想到障碍不小。
首先,让我们看一下如何在word文档中手动输入带有的框。
对于在Word中输入的框,只要打开百度搜索,就能找到一系列教程,教你如何在Word中输入。
这里主编推荐了本人最喜欢的两种方法,是最容易记住和操作的方法。
一、sunguou拼音输入法,按符号,然后在“开始”选项卡下的字体组中选择“圆形字符”,并选择“方框”作为圆形编号。
第二次,输入大写字母R,在字体中选择“Wingdings 2”即可。
在 word中手动插入带有的盒子看起来如此简单,但如果你想把这些文字放进VBA,你就会发现变身。
以圆形字符生成的十几个框将复制到VBA中,并分为框和两个字符。
将以字体显示的框复制到VBA中,以显示原始字符R。
怎么办?怎么办?如何通过Vba在word文档中输出框?
这里有一个想法。仅供参考。如果有更好的方法,请在评论区告诉我。
回顾一下刚才手动插入的过程,如果输入大写R,然后选择“Wingdings 2”,则可以选中显示为“Wingdings 2”的框。VBA为什么不能用大写的R替换这个字符,然后输出到word,然后批量设置字体为“Wingdings2”?
为此,请按如下方式编写整个算法:
将;框显示为复杂字符串(此字符串不能与整个word文档中的其他字符串重复,也不能显示为大写字母r。因为其他word字符串也可以包含大写r。),然后用word查询替换,大量查找复杂的字符串,用大写字母r替换,字体格式设置为wingdis
代码如下:
Sub exceloffice()
Dim oDoc As Document
Set oDoc=Word。ActiveDocument
Dim oRng As Range
Set oRng=oDoc。Content
ARR=ARRAY(“1、重大决策”、“2、重要干部任免、奖惩”、“3、重大项目准备”、“4、大规模使用资金”、“5”
条件是“重大决定”
SText=“重大决定”
For I=0 To UBound(Arr)
Ifarr (I) like "*" stext "*" then
用特殊字符串替换满足条件的项目的“无”框。这里有8个美元符号组成的陌生单词。word文档中不会出现这样的单词。" "
Arr (I)=vba.replace (arr (I),“”,“$ $ $ $ $ $ $”)
End If
Next I
With oRng
.Text=Join(Arr、vbTab)
With。Find
查找特殊字符串
.ClearFormatting
.text=“$ $ $ $ $ $ $ $”
With。Replacement
.ClearFormatting
替换为大写字母r
.text="r "
“替换为类型”
.font.name="wingdings2 "
End With
替换批量查找
.execute format :=true,replace :=wd replace all
End With
End With
End Sub还可以使用VBA模拟第一种手动插入方法,生成带圆圈的字符,但使用上面的代码可以完全解决在word文档中的任何位置插入的框的问题,因此不需要考虑在word文档中击中 的框的位置。柔韧性很好。