Синтаксис свойства Range.Cells

Меня смущает свойство Range.Cells. Согласно документации MSN:

Свойство Range.Cells (Excel)

Синтаксис должен быть expression .Cells

Тем не менее, в следующем примере код не следует этому синтаксису, но, по-видимому, использует Cells как функцию:

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

Когда нет точки . предшествует методу Cells или Range , это называется неквалифицированной ссылкой диапазона ; Excel VBA автоматически переносит его на текущий активный лист.

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

Однако это считается плохой практикой, и ее следует избегать, поскольку она приводит к случайным проблемам и ошибкам; поведение кода зависит от того, на каком лике, который пользователь имеет в верхней части в графическом интерфейсе Excel. Опытные разработчики всегда избегают его как можно больше и используют квалифицированные диапазоны ; т.е.

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

Давайте будем гением компьютера.