我有一对单词如下所示,我想使用VBA自动添加数字作为所有实例的语音指南,在单词文档的基础上基于列表。我试着使用范围法,但我不知道,因为我还是刚刚开始使用VBA。
下面是一个例子:
结果我想要得到

发布于 2020-08-25 13:06:15
首先,欢迎来到堆栈溢出。
其次,你的问题缺乏这里通常需要的焦点,因为它属于“我有一个想法,但不知道如何编码,有人能帮我做吗?”
然而,由于你的问题涉及到我在30多年的文字编码中从未做过的事情,我发现它足够有趣,足以证明我需要修改一些规则。
您需要解决的第一个问题是如何存储值对并循环它们以检索它们。我要把这个留给你去解决。在互联网上有很多例子可以帮助你做到这一点。
下一部分是在文档中找到文本并添加语音指南。为此,您可以使用Find方法。您可以在问题MS Word VBA查找和循环(不替换)的答案中找到使用此方法的一个很好的示例
当与Selection对象一起使用时,Find将选择找到的文本(如果有的话)。类似地,当与Range一起使用时,如果Find成功的话,它将重新定义找到的文本的范围。您可以使用此行为添加语音指南。
我已经为您提供了一个基本的例程来完成这个任务,并给出了一个使用示例。
Sub TestAddPhoneticGuideToText()
AddPhoneticGuideToText ActiveDocument, "I ", "100"
AddPhoneticGuideToText ActiveDocument, "left", "283"
AddPhoneticGuideToText ActiveDocument, " a ", "8"
AddPhoneticGuideToText ActiveDocument, "demanding", "920"
End Sub
Sub AddPhoneticGuideToText(docTarget As Document, findText As String, phoneticText As String)
Dim searchRange As Word.Range
Dim textFound As Boolean
Set searchRange = docTarget.Range
With searchRange.Find
.ClearFormatting
.text = findText
textFound = .Execute(Forward:=True)
Do While textFound = True
searchRange.phoneticGuide text:=phoneticText, Alignment:=wdPhoneticGuideAlignmentCenter, Raise:=11, FontSize:=7
searchRange.Collapse wdCollapseEnd 'search from after the found to the end of the doc
textFound = .Execute(Forward:=True)
Loop
End With
End Subhttps://stackoverflow.com/questions/63573312
复制相似问题