我有一个包含许多首字母缩略词的文档,需要捕获并放入文档末尾的首字母缩略词表中。
术语首字母缩略词有多种含义。我想创建一个包含所有已初始化单词的表;两个或两个以上大写字母的缩写,表示更长的含义。即 CD-ROM、USB、SYNC、MMR、ASCAP 等。
我如何创建一个宏来做到这一点?
最佳答案
像这样的事情可能会让你开始。添加对“Microsoft VBScript 正则表达式”的引用(编辑宏:工具 > 引用)。这个库是文件“vbscript.dll”。
如果您的所有首字母缩略词都不是大写字母(例如,有些可能包含数字),您可能需要调整正则表达式。
Sub Acronyms()
Dim dict, k, tmp
Dim regEx, Match, Matches
Dim rngRange As Range
Set regEx = New RegExp
Set dict = CreateObject("scripting.dictionary")
regEx.Pattern = "[A-Z]{2,}" '2 or more upper-case letters
regEx.IgnoreCase = False
regEx.Global = True
Set Matches = regEx.Execute(ActiveDocument.Range.Text)
For Each Match In Matches
tmp = Match.Value
If Not dict.Exists(tmp) Then dict.Add tmp, 0
dict(tmp) = dict(tmp) + 1
Next
For Each k In dict.Keys
Debug.Print k, dict(k)
Next k
End Sub
关于vba - 如何使用宏查找 MS Word 文档中的所有首字母缩略词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10917155/