我有许多冗长的Word 2010文档,其中包含许多首字母缩略词,所有这些文档中都有许多相同的首字母缩略词。我还有一个这些缩写词的垂直列表,这些首字母缩略词在每个文档中以超链接格式以表格格式(在每个文档的末尾)。
e.g。超链接列表:
AA1
AA2
AA3
...
我的Word 2010宏观体验非常少,但想知道是否有可能像这样工作的宏:
在任何给定的文档中,当我将光标放在列表的顶部时(即在具有超链接内容的单元格中#34; AA1和#34;),它将选择第一个单元格的内容,然后将其复制到剪贴板,然后对所有文本格式化的单词" AA1"进行全局替换(使用^ c我猜)。在文档中使用超链接格式化的单词" AA1" (假设它找到了要替换的词)。
然后它将向下移动到第二个单元格,其超链接内容为" AA2"并替换所有" AA2"文档中带有超链接的文本" AA2"值等等,直到超链接列表中的所有超链接单词都替换了文档中的所有文本单词。
这可以吗?
答案 0 :(得分:1)
如果我理解你的意思正确[问题不清晰和可视]这是你需要的基本代码:
Sub replaceHyperLink()
Dim searchText As String
searchText = "AA1"
Selection.Find.ClearFormatting
With Selection.Find
.text = ""
.Replacement.text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Do
With Selection.Find
.text = searchText
End With
Selection.Find.Execute
If Selection.Find.Found = True Then
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
"stackoverflow.com/", SubAddress:="", ScreenTip:="", TextToDisplay:=searchText
Else
Exit Do
End If
Loop
End Sub
如果你想从单元格中获取文本:
Dim cellText As String
For i = 1 To ActiveDocument.Tables(1).Rows.Count
ActiveDocument.Tables(1).Rows(i).Cells(3).Select
cellText = Selection.text
'do what you want with text
Next i