我有一个类门户

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 上遇到类型不匹配?

最佳答案

如果您尝试访问单元格,请使用 Cells 对象的 Range 属性,而不是 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 - 循环选择的行 |范围与行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47743428/

10-11 07:51