vba
Sub HighlightElements()
Dim arr As Variant
Dim j As Long
Dim rng As Range
Dim i As Long
Set rng = ActiveDocument.Range
arr = Split(rng, ",")
For i = 0 To UBound(arr)
For j = 0 To UBound(arr)
If arr(i) = arr(j) And i <> j Then
rng.Find.Execute FindText:=arr(j), MatchCase:=True
rng.HighlightColorIndex = wdYellow
End If
Next
Next
End Sub
vba
这个你看看运行的时候报什么错,你的文档是什么,find是不是没有找到,数组是否越界
vba尽量不要自己写,可以录制宏自动生成的。
这段代码似乎是 Word VBA 代码,不过有一些问题需要修复。以下是修复后的代码:
Sub HighlightElements()
Dim arr As Variant
Dim j As Long
Dim rng As Range
Dim i As Long
Set rng = ActiveDocument.Content
arr = Split(rng, ",")
For i = 0 To UBound(arr)
For j = 0 To UBound(arr)
If arr(i) = arr(j) And i <> j Then
With rng.Find
.ClearFormatting
.Text = arr(j)
.MatchCase = True
.Execute
End With
If rng.Find.Found Then
rng.HighlightColorIndex = wdYellow
End If
End If
Next
Next
End Sub
该代码将选中文档中所有的内容,并将其按“,”分割成一个字符串数组。之后,代码会遍历整个字符串数组,对于其中的重复元素进行高亮显示。具体来说,代码会用 Find 方法在文档中查找相应的重复元素,并将其设置为黄色高亮。
需要注意的是,在代码中使用了“wdYellow”常量来表示黄色高亮颜色索引值,如果您的 VBA 环境中未定义该常量,可以手动添加以下声明语句:
Const wdYellow As Integer = 6