vba - 添加方法VBA上的运行时错误

标签 vba excel excel-2010

我的函数的意图在文档字符串中进行了解释。但是,当我运行它时,我得到一个“运行时错误'91':对象变量或未设置 block 变量”,并突出显示一行代码,如下所示。我找不到这个问题的根源,特别是因为我对 VBA 还很陌生。任何帮助将不胜感激!

'==============================|Range_Collection FUNCTION|=============================='
' Given a collection and a range, add each value in that range to the collection, except
' for False values.
Function Range_Collection(col As Collection, rng As Range) As Collection

    Dim Val As Variant
    For Each Val In rng
        If Not Val.Value = False Then
            col.Add Val.Value ;************** THIS CODE IS HIGHLIGHTED************
        End If
    Next Val
    Set Range_Collection = col

End Function

最佳答案

假设您的工作表如下所示

enter image description here

这是我运行代码时得到的

enter image description here

除了我的评论,看到这个

语法是 col.add "Item","Key"。 key 必须是唯一的。如果您有重复的值,那么按照我的建议使用 OERN 或使用唯一键。

Sub Sample()
    Dim c As New Collection

    For Each itm In Range_Collection(c, Range("A1:A5"))
        Debug.Print itm
    Next
End Sub
Function Range_Collection(col As Collection, rng As Range) As Collection

    Dim rVal As Variant

    For Each rVal In rng
        If Not rVal.Value = False Then
            On Error Resume Next
            col.Add rVal.Value, CStr(rVal.Value)
            On Error GoTo 0
        End If
    Next rVal

    Set Range_Collection = col
End Function

关于vba - 添加方法VBA上的运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30353589/

相关文章:

arrays - 使用数组将文本从一个工作表传递到另一个工作表

excel - 使用 excel-vba 将工作表范围导出到 csv

excel - VBA中的数字上下控制

vba - 将 MS Word 文档中每个句子的第一个字母加粗

excel - 如何确定我的函数所在的工作簿中的工作表名称?

java - Apache POI 正在设置错误的单元格字体

excel - 用于查找列中包含其他列文本的行的公式

excel - 在 Excel 的列中搜索字母字符

VBA Excel 2010 组合框和选择案例

Excel INDEX 和 MATCH 获取值