Как получается, что свойство Cells () принимает десятичные значения? - PullRequest
0 голосов
/ 18 декабря 2018

Если я выполню следующий код

Cells(3.0004, 5.604).Interior.ColorIndex = 1

, ячейка в строке 3, столбец 6 (F3) будет окрашена в черный цвет.Он делает это без жалоб и, кажется, молча округляет значения.Как и почему?

1 Ответ

0 голосов
/ 18 декабря 2018

Свойство Range.Cells не имеет параметров.

Property Cells As Range / read-only / member of Excel.Range

Это означает, что Cells(foo, bar) является неявным вызовом члена по умолчанию, который разрешается примерно так (при условии, что код записан встандартный модуль):

 ActiveSheet.Cells.[_Default](foo, bar)

hidden Range._Default property

Если элемент по умолчанию вызывается без параметров, вы получаете вызов элемента в Value.

* диапазона.1016 * Если элемент по умолчанию вызывается с параметрами, то вы получите вызов элемента к свойству Item диапазона:

range.item property

RowIndex и ColumnIndex параметры Variant, так что вы можете дать ему «D» для столбца, и он понимает, что вы хотите 4-й.Или вы можете дать ему любое целочисленное значение, и оно будет работать с этим.

Так почему же он счастлив работать с десятичным значением?Потому что это прощение, вот и все: оно делает неявное сужающее преобразование типов из Double в Long, и весело принимает 5.604 и делает это 6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...