我有一个类门户
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/