vba - 错误 91 对象变量或未在范围内设置 block 变量

标签 vba excel duplicate-removal

我是 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的类型来自 VariantRange看看是否有什么不同。

作为旁注,vVal还没有Dim编。如果您添加 Option Explicit,它只会提示在模块的顶部,所以在这里应该没关系。

关于vba - 错误 91 对象变量或未在范围内设置 block 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24848708/

相关文章:

vba - 安全 - 如何确保更多安全

excel - 有没有办法在 excel vba 2010 中连接文件路径?

excel - 使用 VBScript 检查 Excel 工作簿是否打开

java - HashSet 存储相等的对象

excel - 单元格中的所有文本都使用相同的字体吗?

vba - 在不同的工作表中运行宏时出错

excel - 如何引用旧版本的VBA库?

excel - 从 Excel 中的多个主体计算 PMT

freemarker - 删除 Lithium/Freemarker 中的重复项

java - 删除字符串数组中具有相同字符的字符串