excel - 遍历 Selection | 行范围与行

标签 excel vba range type-mismatch

我有一个类(class)门户网站

Public Function Init(Rng As Range) As Portal

它使用 Rng.Item(1) 和 Rng.Item(2) 处理 Rng 范围的前 2 个单元格。这适用于选择的第一行:

Sub ProcessPortal()
    Dim mPortal As Portal

    Set mPortal = New Portal
    With mPortal
        .Init Selection
    End With

End Sub

但是当我想遍历其余行时它失败了:

Sub ProcessPortal()
    Dim mPortal As Portal
    Dim a As Range, b As Range

    Set a = Selection
    For Each b In a.Rows
        Set mPortal = New Portal
        With mPortal
            .Init b
        End With
    Next b
End Sub

b 是一个范围,就像选择一样,对吧?为什么 .Init b 会出现类型不匹配?

最佳答案

如果您尝试访问单元格,请使用 Cells Range 的属性(property)对象,而不是 Item属性,即使用 Cells(1)Cells(2)在你的Init程序。

第一个Item整行的一部分就是该行本身,如下所示:

Debug.Print Rows(1).Item(1).Address

这将返回 $1:$1

Debug.Print Rows(1).Cells(1).Address

将返回 $A$1 .

关于excel - 遍历 Selection | 行范围与行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47743428/

相关文章:

excel - 这个 Excel 公式在做什么?

c# - 帮助通过 ole db 连接读取 excel 日期的奇怪行为

excel - 如何根据月份检查单元格的范围/列并复制它们

jQuery.val 不适用于范围输入?

python - 用整数序列填充二维数组的更 Pythonic/优雅的方法?

如果范围在范围列表内,则返回 TRUE/FALSE R

excel - 如何知道数据的最后一行,无论该行是否隐藏

excel - 每十行增加一个计数器

excel - Workbooks.OpenText 无法正确解析 csv 文件 Excel 2016

生成#NAME 的正则表达式? UDF 错误