如果我执行以下代码
Cells(3.0004, 5.604).Interior.ColorIndex = 1
它将为第3行第6列(F3)的单元格着色。它这样做没有抱怨,而且似乎在默默地舍入值。如何以及为什么?
答案 0 :(得分:4)
Range.Cells
属性是无参数的。
这意味着Cells(foo, bar)
是一个隐式默认成员调用,它可以解析为以下内容(假设代码是在标准模块中编写的):
ActiveSheet.Cells.[_Default](foo, bar)
如果不带参数调用默认成员,则得到的是对该范围的Value
的成员调用。
如果使用 参数调用默认成员,则得到的是对该范围的Item
属性的成员调用:
RowIndex
和ColumnIndex
参数是Variant
,因此您可以将其指定为列的“ D”,并且它理解您想要第4个。或者,您可以给它提供任何整数值,它将与之一起使用。
那么为什么对使用十进制值感到高兴呢?因为它是宽容的,仅此而已:它可以将隐式变窄类型从Double
转换为Long
,并轻松地将5.604
变成6
。