Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Возвращает объект Range, представляющий диапазон со смещением относительно указанного диапазона.
Синтаксис
expression. Item (RowIndex, ColumnIndex)
выражение: переменная, представляющая объект Range.
Параметры
| Имя | Обязательный или необязательный | Тип данных | Описание |
|---|---|---|---|
| RowIndex | Обязательный | Variant | Если указан второй аргумент, относительный номер строки возвращаемой ячейки. Если второй аргумент не указан, индекс возвращаемого поддиапапа. |
| ColumnIndex | Необязательный | Variant | Относительный номер столбца возвращаемой ячейки. |
Замечания
Если выражение не является диапазоном, содержащим коллекцию отдельных ячеек, например из-за того, что оно было получено через элемент Columns , предоставление второго аргумента является недопустимым и приведет к ошибке 1004.
Элемент range по умолчанию переадресовывает вызовы с параметрами к элементу Item . Таким образом, someRange(1) и someRange(1,1) эквивалентны someRange.Item(1) и someRange.Item(1,1)соответственно.
Аргументы RowIndex и ColumnIndex являются относительными смещениями на основе 1 к верхней левой ячейке первой области диапазона, возвращаемой элементом Areas , т. е. для диапазона Union(someSheet.Range("Z4:AA6"), someSheet.Range("A1:C3"))возвращает Item(1,1) диапазон с адресом $Z$4.
ColumnIndex можно предоставить либо в виде числового индекса, либо в виде строки адреса столбца, как в нотации A1, т. е. "A" относится к числовой индексу 1 и "AA" к 27.
Можно ссылаться на ячейки за пределами исходного диапазона с помощью свойства Item , указав соответствующие аргументы, например Item(3,3) возвращает ячейку в "D4" для диапазона someSheet.Range("B2:C3").
Диапазон, возвращаемый при указании только одного параметра, зависит от характера диапазона:
Для диапазонов, состоящих из отдельных ячеек, возвращаемых элементами Cells и Range , Item возвращает отдельные ячейки. Параметр RowIndex ссылается на индекс при перечислении первой области диапазона слева направо, чем сверху вниз, как для двухдиментных массивов. Если RowIndex больше, чем количество ячеек в первой области диапазона, перечисление, как если бы область была расширена вниз.
Для диапазонов, состоящих из диапазонов строк, возвращаемых строками, item возвращает диапазоны строк. Параметр RowIndex — это смещение на основе 1 от первой строки диапазона в направлении сверху вниз.
Для диапазонов, состоящих из диапазонов столбцов, возвращаемых столбцами, элемент возвращает диапазоны столбцов. Параметр RowIndex — это смещение на основе 1 от первого столбца в направлении слева направо. В этой ситуации индекс можно также указать в виде строки адреса столбца.
Пример
В следующем примере показано, какая ячейка возвращается, если указаны оба параметра.
Public Sub PrintAdresses()
Dim exampleRange As Excel.Range
With ThisWorkbook.Worksheets("ExampleSheet")
Set exampleRange = Application.Union(.Range("B2:D4"), .Range("A1"), .Range("Z1:AA20"))
End With
Debug.Print exampleRange.Item(1,1).Address 'Prints "$B$2"
Debug.Print exampleRange.Item(2,4).Address 'Prints "$E$3"
Debug.Print exampleRange.Item(20,40).Address 'Prints "$AO$21"
Debug.Print exampleRange.Item(2,"D").Address 'Prints "$E$3"
Debug.Print exampleRange.Item(20,"AN").Address 'Prints "$AO$21"
End Sub
В следующем примере для разных типов диапазонов показано, какие поддиапазоны возвращаются, если указан только один параметр.
Public Sub PrintAdresses()
Dim exampleRange As Excel.Range
With ThisWorkbook.Worksheets("ExampleSheet")
Set exampleRange = Application.Union(.Range("B2:D4"), .Range("A1"), .Range("Z1:AA20"))
End With
Debug.Print exampleRange.Cells.Item(1).Address 'Prints "$B$2"
Debug.Print exampleRange.Cells.Item(2).Address 'Prints "$C$2"
Debug.Print exampleRange.Cells.Item(4).Address 'Prints "$B$3"
Debug.Print exampleRange.Cells.Item(10).Address 'Prints "$B$5"
Debug.Print exampleRange.Rows.Item(1).Address 'Prints "$B$2:$D$2"
Debug.Print exampleRange.Rows.Item(10).Address 'Prints "$B$11:$D$11"
Debug.Print exampleRange.Columns.Item(1).Address 'Prints "$B$2:$B$4"
Debug.Print exampleRange.Columns.Item(10).Address 'Prints "$K$2:$K$4"
Debug.Print exampleRange.Columns.Item("A").Address 'Prints "$B$2:$B$4"
Debug.Print exampleRange.Columns.Item("J").Address 'Prints "$K$2:$K$4"
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.