Evolcom.ru

Бытовая техника
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как подсчитать листы с определенным именем в Excel?

Создание в Excel имен уровня листа

Если вы обычно даете ячейке или области имя, вы можете использовать это имя на всех листах книги. Например, если вы создадите имя RegionTotal, ссылающееся на ячейку M32 на рабочем листе 1, вы можете указать это имя в формуле на любом рабочем листе. Это имя является именем уровня книги (или глобальным именем). По умолчанию все имена ячеек и диапазонов являются именами одноименного уровня.

Представьте, что у вас несколько листов в книге, и вы хотите, чтобы на каждом листе было одинаковое имя (например, одинаковый RegionTotal). Следовательно, в этом случае необходимы имена на уровне листа (иногда их называют локальными именами). Выберите лист, на котором вы хотите определить RegionTotal как имя уровня листа, а затем выберите Формулы ► Определенные имена ► Присвоить имя. Появится окно Создание имени. С помощью раскрывающегося списка Регион выберите лист, на котором будет действовать заданное вами имя (рис. 92.1).

Рис. 92.1. Создание имени уровня листа

Рис. 92.1: Создание имени на уровне листа.

Имена также можно создавать на уровне листа с помощью поля Имя (расположенного слева от панели формул). Введите имя ячейки или диапазона, затем имя листа и восклицательный знак в поле Имя. После ввода имени нажмите Enter. Примером имени для уровня листа является Sheet3!RegionTotal. Если имя листа содержит хотя бы один пробел, заключите его в апострофы следующим образом: ‘Западный регион’!RegionTotal .

Когда вы пишете формулу, которая использует имя уровня листа на листе, где вы его определили, вам не нужно включать имя листа в имя диапазона (и оно не отображается в поле Имя). Когда вы включаете имя в формулу на другом листе, вы должны включить полное имя (имя листа, восклицательный знак и само имя).

Читайте так же:
Как подсчитать частичное совпадение строки / подстроки в Excel?

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

Рис. 92.2. Диспетчер имен позволяет легко различать имена уровня книги и имена уровня листа

Рисунок 92.2: Менеджер имен облегчает различение имен когнитивного уровня и имен на уровне листа

Имена уровня листа появляются только в поле Имя текущего листа. При открытии диалогового окна «Вставить имя» (нажатием F3) в списке появляются только имена уровня листа в текущем листе.

Как узнать Item листа в книге Excel

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

Но такая красота не работает

И правильно ли я поступаю:

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

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

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

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

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

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

Похоже, что элемент предназначен для этой цели, но не реализован правильно в листе, или я использую его неправильно.

Читайте так же:
Как подсчитать одинаковые или повторяющиеся значения только один раз в столбце?

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

Саш, я не понимаю, почему кодовое имя доставляет хлопоты? Иногда даже удобнее, чем использовать имя:-)

Сообщение kuklp

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

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

Сообщение от ikki
Сообщение от ikki
Сообщение от Апострофф

Сообщение от Diskretor
Лучший ответСообщение было отмечено как решение

Решение

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

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

Вы можете изменить кодовое имя через интерфейс VBE — Щелкните левой кнопкой мыши на имени листа в списке объектов — F4 — свойство (Имя) — то, которое со скобками.

Читайте так же:
Как преобразовать все заглавные буквы в только первую в выбранном диапазоне в Excel?

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

и т.п.

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

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

Следующая примерная процедура применяется, если вам нужен лист с кодовым именем, но на этапе разработки кодовое имя было неизвестно:

Почему все это необходимо, надеюсь, вы поймете.

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector