日常工作中问卷调查经常使用Word表格,常见的勾选选项,如果使用的是控件,那么统计起来就非常方便,但是有些时候插入的是特殊符号,使用代码统计的时候就要使用一些技巧了。
Word调查表格如下图所示,其中黄色高亮部分为需要统计的内容,“城市房屋”和“农村房屋”等之前的均为特殊符号。
示例代码如下。
Sub Demo()
akey = Array("农村房屋", "城市房屋", "国有土地", "集体土地")
For i = 0 To UBound(akey)
ite = akey(i)
ThisDocument.Tables(1).Select
Selection.Find.ClearFormatting
With Selection.Find
.Text = ite
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=5, Extend:=wdExtend
chk = AscW(Selection.Range.Text)
If chk = 40 Then
msg = "选中了 - "
ElseIf chk = 9633 Then
msg = "未选中 - "
Else
msg = "无法判断 - "
End If
Debug.Print msg & ite
Next
End Sub
【代码解析】
第2行代码将需要统计的内容记录在数组中。
第4行代码提取关键字。
第5行代码选中表格。
第6行代码晴空查找格式设置。
第7~19行代码设置查找参数。
第20行代码执行查找。
第21行代码选中关键字之前的一个字符,即特殊符号。
第22行代码读取该特殊符号的编码值。
第23~29行代码根据编码值生成提示信息。
第30行代码在立即窗口中输出统计结果。
代码运行结果如下图所示。
对于不同字体,同一个字符编码值会对应不同的显示字符,所以有时判断可能并不完全准确,需要根据Word文件进行调整。