是否有可能在.find期间获得单词索引?我用.find.text来获取单词,但是我需要它的索引位置,然后将它保存在数组中。
通常,它是 documents("doc").word(index)
但如果我喜欢这样的话:
dim indexarray() as long
dim i as long
i = 0
with documents("doc").content.find
.text = word
do while .execute
redim preserve indexarray(i)
indexarray(i) = index
i = i+1
loop
end with
是否可以在没有循环的情况下获得索引?
答案 0 :(得分:4)
您无法获得所选/找到的单词数量,但根据您的需要,可能会有一些可行的解决方法。在这里,我将提出一个想法。
我已经更改了您提供的一些代码 - 请参阅内部的一些评论:
Sub Workaround()
Dim indexarray() As Long
Dim i As Long
Dim Index
i = 0
'searching by Range object variable
Dim DocRNG
Set DocRNG = ActiveDocument.Content 'here change into your document object
'start searching with reference to variable
With DocRNG.Find
.Text = "commodo" 'here your text to search
Do While .Execute
ReDim Preserve indexarray(i)
'possible workaround!!!
Index = ActiveDocument.Range(0, DocRNG.End).Words.Count
indexarray(i) = Index
i = i + 1
Loop
End With
End Sub
重要!请注意,逗号,点,分号等字符也属于Words collection
。因此这些句子:
Nunc viverra, imperdiet enim. Fusce est; Vivamus a tellus!
返回13个单词,而你可以计算9个单词。但是,建议的解决方法将正常工作,我尝试和测试。