日常工作中問卷調查經常使用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文件進行調整。