循环select|行 范围vs行

我有一个类的门户网站

Public Function Init(Rng As Range) As Portal 

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

 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是一个范围,就像select,对不对? 为什么我的types不匹配.Init b?

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

整行的第一Item是行本身,可以看出:

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

这将返回$1:$1

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

将返回$A$1