循环遍历选择|范围与行

时间:2017-12-10 21:02:34

标签: excel vba range type-mismatch

我有一个带有

的门户网站
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是一个Range,就像Selection一样,对吗?为什么我在.Init b?

上出现类型不匹配

1 个答案:

答案 0 :(得分:2)

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

整行的第一个Init是行本身,如下所示:

Item

将在

时返回Debug.Print Rows(1).Item(1).Address
$1:$1

将返回Debug.Print Rows(1).Cells(1).Address