我是 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:对象变量或未设置 block 变量”
它说错误在
For Each rngCell1 In rnga.Cells
我在这里做错了什么?
最佳答案
我可以在 Excel 2010 中本地运行您的代码而不会出现任何错误,因此不确定到底是什么问题。
尝试更改rngCell1
的类型来自 Variant
至Range
看看是否有什么不同。
作为旁注,vVal
还没有Dim
编。如果您添加 Option Explicit
,它只会提示在模块的顶部,所以在这里应该没关系。
关于vba - 错误 91 对象变量或未在范围内设置 block 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24848708/