【发布时间】:2017-11-05 11:30:00
【问题描述】:
我正在使用包含大量页面和公式的 Word Docs。
我有一个包含表达式的数组
dim YellowWord(1 to 100) as string
我想从单词文本的开头开始查找这些单词中的每一个,并查看该单词或表达式后跟一个或多个括号中的数字的实例 示例: Yellowword(2)="蓝色桌子"
使用通配符我可以找到:文本中的蓝色表格 (34, 23)。 我想要的是填充另一个数组:
yellowwood_reference(2) = "(34, 23)"
我的代码是这样的:
for i=1 to NRofYellowWords
with active document.content.find
.clearformating
.text = yellowWord(i) & " " & "\((*)\)"
with .replacement
.clearformating
.text = yellowWord(i) & "(\1)"
'HERE IS WHERE I WANT TO SAY TO WORD:
'PUT THAT PART "(\1)" INTO A VARIABLE YELLOWWORD_REFERENCE(i)
'HOWW??????
.font.color = wdcolorred
'here i changed the color of the string with the references into red.
end with
.fordward = true
.wrap = wdfindcontinue
.format = true
.matchcase = false
.matchewholeword = false
.matchwildcards = true
.matchsoundslike = false
.matchallwordforms= false
.execute replace:=wdreplaceall
end with
next i
上面的代码有几个问题: 第一个是我用大写字母写的,把通配符的引用变成一个变量。 第二个是文本中可能有很多 YellowWord(2) 出现,我只需要/想要第一个参考,而不是其余的。这意味着代码在将值 "(24, 26)" 传递到另一个数组后第一次找到 蓝色表 (24,26) 时,代码应该继续而不是在文本中寻找更多蓝色表格的实例。
顺便说一句,我使用了通配符,因为可能存在引用很简单而不是括号的情况,所以我必须使用不同的通配符运行两次。
顺便说一句,你可以想象,一旦我得到数组 yellowWord_reference(i),我就会在没有引用的 YellowWord 实例的地方添加引用。
我非常感谢帮助,因为我确实点击了许多网站但收效甚微。
非常感谢
干杯
PS:如果您认为有更好的方法可以在不使用 .find 的情况下完成所有这些操作,请提及,我是 Ms-Word 中的新手,并且来自 VBA Excel,我很难弄清楚选择点在哪里.
【问题讨论】:
标签: vba replace ms-word wildcard