我是VBA的新手,因为我试图编写一个宏来查找工作表中不同列中的重复项。我发现answer here很有帮助。然而,这只解决了一个列。因此,为了添加更多列,我按如下方式更改了代码
Sub test()
Dim iWarnColor As Integer
Dim rng As Range
Dim rngCell As Variant
Dim iWarnColor1 As Integer
Dim rnga As Range
Dim rngCell1 As Variant
Set rng = Range("A1:A17") ' area to check '
iWarnColor = xlThemeColorAccent2
For Each rngCell In rng.Cells
vVal = rngCell.Text
If (WorksheetFunction.CountIf(rng, vVal) = 1) Then
rngCell.Interior.Pattern = xlNone
Else
rngCell.Interior.ColorIndex = iWarnColor
End If
Next rngCell
Set rnga = Range("B1:B17") ' area to check '
iWarnColor1 = xlThemeColorAccent3
For Each rngCell1 In rnga.Cells
vVal = rngCell1.Text
If (WorksheetFunction.CountIf(rnga, vVal) = 1) Then
rngCell1.Interior.Pattern = xlNone
Else
rngCell1.Interior.ColorIndex = iWarnColor1
End If
Next rngCell1
End Sub
运行此代码我得到了 “运行时错误91:对象变量或未设置块变量”
它说错误在
For Each rngCell1 In rnga.Cells
我在这里做错了什么?
答案 0 :(得分:3)
我可以在Excel 2010中本地运行您的代码而不会出现任何错误,因此不确定问题到底是什么。
尝试将rngCell1
的类型从Variant
更改为Range
,看看它是否有所不同。
作为旁注,vVal
尚未Dim
。只有在模块顶部添加Option Explicit
时才会抱怨,因此在此处无关紧要。