Что такое item в excel

Обновлено: 04.07.2024

Возвращает объект Range, представляющий диапазон со смещением относительно указанного диапазона.

Синтаксис

выражения. Item (RowIndex, ColumnIndex)

выражение: переменная, представляющая объект Range.

Параметры

Имя Обязательный или необязательный Тип данных Описание
RowIndex Обязательно 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-notation, то есть относится к числовому индексу и "A" 1 к "AA" 27 .

Можно ссылаться на ячейки за пределами исходного диапазона с помощью свойства Item, предоставляя соответствующие аргументы, например, возвращает ячейку в Item(3,3) "D4" someSheet.Range("B2:C3") диапазоне .

Диапазон, возвращаемый при предоставлении только одного параметра, зависит от характера диапазона:

Для диапазонов, состоящих из одиночных ячеек, возвращаемых участниками Cells и Range, Item возвращает одиночные ячейки. Параметр RowIndex ссылается на индекс при перенастройке первой области диапазона слева направо, а не сверху вниз, как для двухдиментальных массивов. Если RowIndex больше, чем количество ячеек в первой области диапазона, то это будет как если бы область была расширена вниз.

Для диапазонов, состоящих из диапазонов строк, возвращаемого строками, элемент возвращает ряды строк. Параметр RowIndex — это смещение на основе 1 из первого ряда диапазона в направлении сверху вниз.

Для диапазонов, состоящих из диапазонов столбцов, возвращаемого столбцами, пункт возвращает столбцы. Параметр RowIndex — это смещение на основе 1 из первого столбца в направлении слева направо. В этой ситуации индекс может быть представлен в качестве строки адресов столбца.

Пример

В следующем примере показано, какая ячейка возвращается, если предоставлены оба параметра.

В следующем примере показаны различные типы диапазонов, которые возвращаются при условии только одного параметра.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Возвращает определенный член объекта Collection либо по позиции, либо по ключу.

Синтаксис

объект. Item(index)

Синтаксис метода Item имеет следующий квалификатор объекта и часть.

Part Описание
object Обязательный. Выражение объекта, которое оценивает объект в списке Applies To.
index Обязательный. Выражение expression, задающее позицию элемента коллекции. Если числовое выражение, индекс должен быть числом от 1 до значения свойства Count коллекции. Если выражение строки, индекс должен соответствовать ключевому аргументу, указанному при добавлении участника в коллекцию.

Примечания

Если значение, предоставленного в качестве индекса, не соответствует существующему члену коллекции, возникает ошибка. Метод Item является методом по умолчанию для коллекции. Поэтому следующие строки кода являются эквивалентными:

Пример

В этом примере используется метод Item для получения ссылки на объект в коллекции. Если считать объектом Collection, следующий код извлекает из коллекции ссылки на объекты, представляющие день рождения Билла Смита и день рождения Адама Смита, используя в качестве аргументов индекса Birthdays клавиши "SmithBill" и "SmithAdam".

Обратите внимание, что первый вызов явным образом задает метод Item, однако второй — нет. Оба вызова работают, поскольку метод Item является методом по умолчанию для объекта Collection. Ссылки, заданные и SmithBillBD SmithAdamBD использующие Set, можно использовать для доступа к свойствам и методам указанных объектов.

Чтобы запустить этот код, создайте соответствующую коллекцию и заполните ее по крайней мере двумя указанными элементами.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

В этом примере задается текст заголовка для оси категории на диаграмме1.

Коллекция ChartGroups

Возвращает один объект ChartGroup из коллекции ChartGroups.

Синтаксис

выражения. Item (Index)

выражение (обязательно). Выражение, возвращаее коллекцию ChartGroups.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Index Обязательный Variant Номер индекса группы диаграмм.

Пример

В этом примере строки падения добавляются в группу 1 на листе диаграммы 1.

Коллекция DataLabels

Возвращает один объект DataLabel из коллекции DataLabels.

Синтаксис

выражения. Item (Index)

выражение (обязательно). Выражение, возвращаее коллекцию DataLabels.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Index Обязательный Variant Имя или номер индекса метки данных.

Пример

В этом примере устанавливается формат номеров для пятой метки данных в серии 1 в встроенной диаграмме 1 на таблице 1.

Коллекция LegendEntries

Возвращает один объект LegendEntry из коллекции LegendEntries.

Синтаксис

выражения. Item (Index)

выражение (обязательно). Выражение, которое возвращает коллекцию LegendEntries.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Index Обязательный Variant Номер индекса записи легенды.

Пример

В этом примере изменяется шрифт для текста записи легенды в верхней части легенды (обычно это легенда для серии 1) в встроенной диаграмме 1 на листе1.

Коллекция Points

Возвращает один объект Point из коллекции Points.

Синтаксис

выражения. Item (Index)

выражение (обязательно). Выражение, возвращаее коллекцию Points.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Index Обязательный Long Номер индекса точки.

Пример

В этом примере задается стиль маркера для третьей точки в серии 1 в встроенной диаграмме 1 на таблице 1. Указанная серия должна быть 2D-строкой, разбросом или радиолокационной серией.

Коллекция SeriesCollection

Возвращает один объект Series из коллекции SeriesCollection.

Синтаксис

выражения. Item (Index)

выражение (обязательно). Выражение, возвращаее коллекцию SeriesCollection.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Index Обязательный Variant Имя или номер индекса серии.

Пример

В этом примере содержится две строки кода, эквивалентные.

Коллекция Trendlines

Возвращает один объект Trendline из коллекции Trendlines.

Синтаксис

выражения. Item (Index)

выражение (обязательно). Выражение, возвращаее коллекцию Trendlines.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Index Необязательный Variant Имя или номер индекса трендовой линии.

Пример

В этом примере задается число единиц, которые линия тренда на Диаграмме1 расширяется вперед и назад. Пример следует выполнить на диаграмме столбцов 2D, которая содержит одну серию с линией тренда.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

есть большая книга (листов больше 1000)
Не ругайте - так удобнее мне для своих целей
Name листов меняются программно, а item - величина постоянная
Мне нужно оперировать доступом к конкретному листу по Item, для чего его сначала нужно узнать

но эта красота не работает

и правильно ли я дальше действую:


При создании нового листа произвести проверку на существование вводимого имени листа в текущей книге EXCEL
При создании нового листа, произвести проверку на существование вводимого имени листа в текущей.

Как узнать размер листа в Excel?
есть таблица на листе.. как узнать сколько столбцов до первого пустого столбца.. и соответственно.

Создание листа в рабочей книге Excel
Мне надо экспортировать данные из запроса в один экселевский файл, причём каждую запись на новый.

Как узнать имя активного листа в Excel-е?
И еще вопрос до кучи. Как узнать имя активного листа в Excel-е?

Можно с Index`ом попробовать (если я задачу понял правильно)? у листа есть неизменяемое (read-only) свойство CodeName.
но обращаться к листу, зная его CodeName - довольно хлопотно.

а index не меняется, если лист относительно других листов поменяет свое положение?
у меня листы тасуются в ходе работы пользователем (мной, лентяем), как колода карт блин.

и чем CodeName отличатеся от Item?

вроде именно Item предназначен для таких целей. вот только криво как-то он реализован для листов. или я криво к нему обращаюсь.

Обращаться по item, index - самый ненадежный способ. Используйте свойства name, или как советовал Александр(ikki) - codename. А Ваш вариант как раз:
id_sheet = ActiveSheet.Index - индекс листов меняется из-за удаления-добавления-перемещения.

Саш, ток я не понял, почему хлопотно codename? Чаще даже удобней, чем name:-)

а как?
(work)sheets() требуют либо номер, либо имя.
по CodeName - через цикл перебора листов (именно это я и называю "хлопотно").
конечно, можно использовать CodeName непосредственно в тексте макроса, но это если оно известно (лист существует) на этапе разработки.

Добавлено через 2 минуты
AndreA SN, у листа нет свойства Item.
это "умолчальное" свойство коллекции листов.
Sheets.Item("Лист1") и Sheets("Лист1") - одно и то же.

Сравни:
Set rng = Worksheets("Лист1").[a2:a20]
Set rng = Лист1.[a2:a20]
Или просто листов:
Set sh = Worksheets("Лист1")
Set sh = Лист1 Точка лишняя
А чем классика не устраивает? Назначил переменныю и спи спокойно конечно, можно использовать CodeName непосредственно в тексте макроса, но это если оно известно (лист существует) на этапе разработки . Просветите по поводу получения Codename листа и обращения к нему. Просветите по поводу получения Codename листа и обращения к нему.

Решение

у листа рабочей книги (объекты worksheet, chart) есть свойства index, name, codename
index - текущий номер листа по порядку (включая скрытые), может меняться пользователем при изменении порядка и количества листов;
name - то, что отбражается на ярлычке, может меняться пользователем (конечно. если книга не защищена);
codename - "внутреннее" имя листа, "обычному" пользователю невидимое и недоступное, поэтому не может меняться пользователем .
кроме того, codename является свойством read-only и через VBA также не может быть изменено. *)
в VBE в окне проекта в списке объектов сначала указаны кодовые имена листов, а затем, в скобках, "обычные" имена.

"обычные" и "необычные" ("кодовые") имена могут совпадать, могут - нет.
но в пределах каждого из множеств имён имя должно быть уникальным (без учета регистра символов)

изменить codename можно через интерфейс VBE - ЛКМ по имени листа в списке объектов - F4 - свойство (Name) - именно которое со скобками.

доступ к отдельному листу возможен:
- по индексу
- по "обычному" имени
и для того, и для другого, используется свойство item коллекций sheets, worksheets, charts объекта workbook:
sheets.item(2)
charts.item("диаграмма 5")
и т.п.

т.к. свойство item является "умолчальным", то допустимы и конструкции
sheets(2)
charts("диаграмма 5")

прямого доступа по "кодовому" имени листа через коллекцию - нет.
но, зная codename листа на этапе разработки проекта (макроса). можно прямо это имя написать в качестве идентификатора листа:
лист1.[a1] - обращение к ячейке A1 листа с кодовым именем "лист1" ("Лист1" и т.п.)

если же нужно получить лист по кодовому имени, но на этапе разработки оно было неизвестно, то примерно так:

зачем оно всё надо - надеюсь, понятно?

_________________________
*) однако, может: Как узнать Item листа в книге Excel

Создать новый экземпляр Collection в коде VBA Excel можно двумя строками:

или одной строкой:


Лист автоматической вставки объектов, методов и свойств (лист подсказок) предоставит при написании кода VBA Excel простой доступ к методам Add, Item, Remove и свойству Count объекта Collection:

Лист подсказок отображается автоматически после ввода точки или, в иных случаях, вызывается сочетанием клавиш «Ctrl+Пробел».

Методы и свойство коллекции

Метод Add

Метод Add добавляет новый элемент в объект Collection.

Синтаксис метода Add:

Компоненты метода Add:

  1. Collection – обязательный компонент, представляющий выражение (переменную), возвращающее объект Collection.
  2. Элемент – обязательный аргумент, представляющий выражение любого типа, возвращающее элемент, который необходимо добавить в коллекцию.
  3. Ключ – необязательный аргумент, представляющий строковое выражение, задающее уникальный ключ, который может использоваться вместо индекса позиции для доступа к элементу коллекции.
  4. До* – необязательный аргумент, указывающий на позицию существующего элемента в коллекции, перед которым будет добавлен новый элемент.
  5. После* – необязательный аргумент, указывающий на позицию существующего элемента в коллекции, после которого будет добавлен новый элемент.

* Аргументы «До» и «После» не могут применяться одновременно. Если аргументу «До» или «После» присвоено числовое значение, оно должно быть в пределах диапазона от 1 до значения свойства Collection.Count. Если это строка, она должна соответствовать одному из ключей существующих в коллекции элементов.

Метод Item

Метод Item возвращает элемент объекта Collection по индексу позиции или по ключу.

Синтаксис метода Item объекта Collection:

Компоненты метода Item:

  • Collection – обязательный компонент, представляющий выражение (переменную), возвращающее объект Collection.
  • Index – обязательный аргумент, представляющий выражение, возвращающее номер (индекс) позиции элемента коллекции или его уникальный ключ.

Метод Remove

Метод Remove удаляет элемент из объекта Collection по индексу позиции или по ключу.

Синтаксис метода Remove объекта Collection:

Компоненты метода Remove:

  • Collection – обязательный компонент, представляющий выражение (переменную), возвращающее объект Collection.
  • Index – обязательный аргумент, представляющий выражение, возвращающее номер (индекс) позиции элемента коллекции или его уникальный ключ.

Свойство Collection.Count

Свойство Count объекта Collection возвращает количество элементов в коллекции.

Примеры кода с объектом Collection

Пример 1
Создание нового экземпляра объекта Collection, добавление в коллекцию трех элементов, определение количества элементов в коллекции, извлечение одного и того же элемента по индексу и по ключу:

Читайте также: