我对Range.Cells属性感到困惑。根据MSN文档:
语法应为expression .Cells
然而,在下面的示例中,代码不遵循此语法,但似乎使用Cells
作为函数:
Worksheets("Sheet1").Activate
Range(Cells(1, 1), Cells(5, 3)).Font.Italic = True
答案 0 :(得分:4)
如果.
或Cells
方法之前没有点Range
,则称为非限定范围参考; Excel的VBA会自动将其包装到当前处于活动状态的工作表中。
Cells(1, 1) <==> Activesheet.Cells(1, 1)
Range("A1") <==> Activesheet.Range("A1")
然而,这被认为是不良做法,应该避免它,因为它会导致随机问题和错误;代码的行为取决于用户当前在Excel的GUI中有哪些工作表。经验丰富的开发人员总是尽可能避免使用合格范围;即
Worksheets("someSheetName").Cells(1, 1)
。