我有一个名为的自定义类imera
其中我包含一个名为的范围属性date_cell
.
创建 imera 集合时,每个 imera 的 date_cell 都设置为引用 Excel 中的特定单元格。
尝试按 date_cell 在集合中搜索时:
Option Explicit
Public imeraCol as Collection
Sub searchByDateCell()
Dim day As imera
Dim LastMetrisi As Range
Set LastMetrisi = Range("C27")
For Each day In imeraCol
If day.date_cell Is LastMetrisi Then
'Do something
End If
Next day
Set day = Nothing
End Sub
“Is”运算符似乎没有按预期工作并返回 true,尽管我已经通过 debug.print 进行了测试,在我的集合中存在一个 date_cell 设置为 range("C27") 的 imera。
因此,上面的“执行某些操作”部分永远不会执行。
有什么解释为什么会发生这种情况吗?
The Is
运算符只有在比较相同的情况下才会返回 trueinstance一个物体的。从这篇 MDSN 文章:
Is 运算符确定两个对象引用是否引用相同的对象
目的。但是,它不执行值比较。如果对象1和
object2 都引用完全相同的对象实例,结果为 True;
如果不这样做,结果为 False。
你可以比较一下day.date_cell.address
而是检查相同的范围。
If day.date_cell.Address = LastMetrisi.Address Then
'Do Something...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)