Range.Cells属性语法

我感到困惑的Range.Cells属性。 根据MSN文档:

Range.Cells属性(Excel)

语法应该是expression .Cells

然而,在下面的例子中,代码并没有遵循这个语法,但似乎使用了Cells作为函数:

 Worksheets("Sheet1").Activate Range(Cells(1, 1), Cells(5, 3)).Font.Italic = True 

当没有点.CellsRange方法之前,这称为非限定范围引用 ; Excel的VBA自动将其包装到当前活动的工作表中。

 Cells(1, 1) <==> Activesheet.Cells(1, 1) Range("A1") <==> Activesheet.Range("A1") 

然而,这被认为是不好的做法 ,应该避免,因为它会导致随机问题和错误; 该代码的行为取决于用户目前在Excel的GUI中的顶部。 有经验的开发人员总是尽可能避免使用合格的范围 ; 即

Worksheets("someSheetName").Cells(1, 1)