为什么运行不了啊,VBA好难了😭

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