Открыть лист excel по имени

Обращение к рабочим листам Excel из кода VBA. Переименование листов, скрытие и отображение с помощью кода VBA Excel. Свойства Worksheets.Name и Worksheets.Visible.

Обращение к рабочим листам

Рабочий лист (Worksheet) принадлежит коллекции всех рабочих листов (Worksheets) книги Excel. Обратиться к листу можно как к элементу коллекции и, напрямую, по его уникальному имени.

Откройте редактор VBA и обратите внимание на вашу книгу в проводнике, где уникальные имена листов указаны без скобок, а в скобках — имена листов, отображаемые на ярлычках в открытой книге Excel. Уникальные имена листов отсортированы по алфавиту и их расположение по порядку не будет соответствовать их индексам (номерам), если листы перемещались по отношению друг к другу. Индексы листов смотрите по порядку расположения ярлычков в открытой книге. Переместили листы — изменились их индексы.

Обращение к рабочему листу в коде VBA Excel:

‘По уникальному имени

УникИмяЛиста

‘По индексу

Worksheets(N)

‘По имени листа на ярлычке

Worksheets(«Имя листа»)

  • УникИмяЛиста — уникальное имя листа, отображаемое в проводнике редактора VBA без скобок, с помощью кода VBA изменить его невозможно.
  • N — индекс листа от 1 до количества всех листов в книге, соответствует порядковому номеру ярлычка этого листа в открытой книге Excel.
  • Имя листа — имя листа, отображаемое в проводнике редактора VBA в скобках, с помощью кода VBA изменить его можно.

Количество листов в рабочей книге Excel определяется так:

‘В активной книге

Worksheets.Count

‘В любой открытой книге,

‘например, в «Книга1.xlsm»

Workbooks(«Книга1.xlsm»).Worksheets.Count

Переименование листов

В VBA Excel есть некоторые особенности в наименовании листов, так как у рабочего листа есть два свойства, связанных с именем: (Name) и Name. Откройте окно «Properties» в редакторе VBA, нажав клавишу «F4», и выделите любой лист в проводнике. Вы увидите, что в окне «Properties» свойству (Name) в скобках соответствует в проводнике уникальное имя листа без скобок, а свойству Name без скобок соответствует изменяемое имя листа в скобках. Оба имени в окне «Properties» можно редактировать.

С помощью кода VBA Excel можно редактировать только имя листа Name, отображаемое на ярлычке листа и в проводнике без скобок. Для этого используется свойство рабочего листа Worksheets.Name со следующим синтаксисом:

expression.Name

где expression — переменная, представляющая собой объект Worksheet. Смена имени осуществляется путем присвоения нового значения свойству Worksheets.Name.

Допустим, у нас есть лист с уникальным именем (Name) — Лист1, индексом — 1 и именем Name — МойЛист, которое необходимо заменить на имя — Реестр.

Лист1.Name = «Реестр»

Worksheets(1).Name = «Реестр»

Worksheets(«МойЛист»).Name = «Реестр»

Скрытие и отображение листов

Для скрытия и отображения рабочих листов в VBA Excel используется свойство Worksheet.Visible со следующим синтаксисом:

expression.Visible

где expression — переменная, представляющая собой объект Worksheet. Свойству Worksheet.Visible могут присваиваться следующие значения:

  • False — лист становится невидимым, но он будет присутствовать в списке скрытых листов, и пользователь сможет его отобразить с помощью инструментов рабочей книги Excel.
  • xlVeryHidden — лист становится супер невидимым и его не будет в списке скрытых листов, пользователь не сможет его отобразить. Актуально для Excel 2003-2016.
  • True — лист становится видимым.

Аналоги присваиваемых значений:

  • False = xlHidden = xlSheetHidden = 1
  • xlVeryHidden = xlSheetVeryHidden = 2
  • True = xlSheetVisible = -1 (константа xlVisible вызывает ошибку)

Примеры:

Лист1.Visible = xlSheetHidden

Лист2.Visible = 1

Worksheets(Worksheets.Count).Visible = xlVeryHidden

Worksheets(«МойЛист»).Visible = True

Как создать, скопировать, переместить или удалить рабочий лист с помощью кода VBA Excel, смотрите в этой статье.

   misha122062

09.02.09 — 15:00

Надо выгрузить данные в эксель. Но там много листов, мне нужно получить нужный. Ънаю как перебором, а как просто найти по имени?

Gbie

Екс= НОвый  COMОбъект(«Excel.Application») ;

НашФайл = Екс.Workbooks.Open(путьКФайлу);

Лист = НашФайл.Sheets.Name(«ВП»);

не идет, да и сам чую наверно неверно, но как?

   Heckfy

1 — 09.02.09 — 15:03

*******************************

Открытие книги (файла):

Книга = Эксель.WorkBooks.Open(ПутьКФайлу);

ПутьКФайлу — полный путь к файлу книги Excel.

Выбор листа книги для работы с ним:

Лист = Книга.WorkSheets(НомерЛиста);

или

Лист = Книга.WorkSheets(ИмяЛиста);

НомерЛиста — номер листа в книге, ИмяЛиста — имя листа в книге.

Получение значения ячейки листа:

Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value;

НомерСтроки, НомерКолонки — номер строки и номер колонки, на пересечении которых находится ячейка.

Важно: не забывайте поле выполнения нужных действий добавлять код Эксель.Quit(); , иначе запущенный процесс останется незавершенным и будет занимать память и процессор компьютера.

*********************************************

   Kolyasik

2 — 09.02.09 — 15:05

Лист = НашФайл.Sheets.Item(«ВП»);

   Kolyasik

3 — 09.02.09 — 15:06

мульен вариантов ;)

   misha122062

4 — 09.02.09 — 15:06

спасибо

   misha122062

5 — 09.02.09 — 16:06

И еще, уж извените в тему.

Как записать измененый файл, наверно типа

НашФайл.Save();  правильно?

А вот как его показать пользователю? Наверно что то типа Visible…?

   Heckfy

6 — 09.02.09 — 16:12

   Тиль

7 — 09.02.09 — 16:12

а как можно выбрать только строчки? скажем все строчки по столбец ВВ?

   Heckfy

8 — 09.02.09 — 16:17

(7)

Для Х=1 по Лист.UsedRange.Row.Count Цикл

Сообщить(«»+Лист.Cells(Х, НомерКолонки).Value );

КонецЦикла;

На вскидку, как то так. :):):)

   Тиль

9 — 09.02.09 — 16:21

Row.Count в листе 65000:)) все не выкинет?

   Heckfy

10 — 09.02.09 — 16:27

(9) Что не выкинет? Куда не выкинет? Кто здесь?

   dk

11 — 09.02.09 — 16:28

(9) читай справку по UsedRange

   Тиль

12 — 09.02.09 — 16:28

Row.Count в листе Эксель 65000:))

не получится такого цикла от 1 до 65000?

   Тиль

13 — 09.02.09 — 16:29

а..понял..по смыслу догадался

   Тиль

14 — 09.02.09 — 17:39

на Лист.UsedRange.Row.Count ругается

   Тиль

15 — 10.02.09 — 07:23

ап

   skunk

16 — 10.02.09 — 07:27

попытка

       олеЕксель = новый COMОбъект(«Excel.Application»);

   исключение

       Предупреждение(«Не удалось создать объект автоматизации для работы с MS Excel!»);

       возврат;

   конецпопытки;

   попытка

       олеКнига = олеЕксель.Workbooks.Open(стрИсточник);

   исключение

       Предупреждение(«Не удалось открыть для чтения выбранный файл!»);

       возврат;

   конецпопытки;

   олеЛист = олеКнига.Worksheets.Item(1);

   чисСтрок = олеЛист.UsedRange.Rows.Count;

   Тиль

17 — 10.02.09 — 07:45

(16) а как цикл запустить чтобы вывелись строчки с первой строки по столбец ВВ например? можно использовать запрос?

   skunk

18 — 10.02.09 — 07:47

(17)сам то хоть понял чего спросил … с первой строки по столбец… это как ты себе представляешь?

   Mikeware

19 — 10.02.09 — 07:49

(18) А что? «Копать от забора и до обеда»….

   Heckfy

20 — 10.02.09 — 07:49

(16) Ну конечно же Rows. :):) Досадная очепятка.

   Тиль

21 — 10.02.09 — 07:49

с ячейки А1 по последюю ячейку столбца ВВ

   Тиль

22 — 10.02.09 — 07:50

может запрос можно использовать? что нибудь (select * from олеЛист)? проканает?

   Heckfy

23 — 10.02.09 — 07:52

(21)

Для Х=1 по Лист.UsedRange.Rows.Count Цикл

Для У=1 По Лист.UsedRange.Columns.Count Цикл

Сообщить(«»+Лист.Cells(Х, У).Value );

КонецЦикла;

КонецЦикла;

   Тиль

24 — 10.02.09 — 07:56

(23)нормально выводит…только значения в столбик…а как чтобы строка в строку выводилась?

   Heckfy

25 — 10.02.09 — 08:02

(24) Эээ, ну посмотри в СП: ТабличныйДокумент; Присоединить…. ну, и т.д.

   Тиль

26 — 10.02.09 — 08:11

блин…жалко запросом нельзя сделать…..

блин а вопрос в офф- можно конвертировать файл эксель в дбф4?

   skunk

27 — 10.02.09 — 08:14

ADO … и хоть за запрашивайся

   Тиль

28 — 10.02.09 — 08:24

(27)пример есть?

   Тиль

29 — 10.02.09 — 08:48

ап

  

skunk

30 — 10.02.09 — 10:34

Aiky

5 / 3 / 2

Регистрация: 14.12.2014

Сообщений: 71

1

23.01.2018, 19:54. Показов 7751. Ответов 5

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Добрый день!
Есть такой код

C#
1
2
3
4
5
6
7
8
9
10
string workpath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\Готовые файлы\";//папка с программой
 Excel.Application ObjExcel = new Excel.Application();
            Excel.Workbook ObjWorkBook;
            Excel.Worksheet ObjWorkSheet;
            ObjWorkBook = ObjExcel.Workbooks.Add(workpath + @"г. Дмитров, Махалино, дом 25.xls");
            //Таблица.
 
            ObjWorkSheet = (Excel.Worksheet)ObjWorkBook.Sheets[1];//обращение по индексу
            ObjWorkSheet.Cells[1, 2].Value = kodi[0];
            ObjWorkBook.Save();

Нужно обратиться к листу по имени, а не по индексу, лист скрыт, всего листов в книге 4, обратиться нужно к листу «ОпцииПеречня» и записать в ячейку B1 данные: kodi[0].
Благодарна за любую помощь. Спасибо!



1



kesean

290 / 289 / 108

Регистрация: 04.09.2010

Сообщений: 638

23.01.2018, 22:08

2

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

Решение

Попробуйте так:

C#
1
ObjWorkSheet = (Excel.Worksheet)ObjWorkBook.Sheets.get_Item("ОпцииПеречня");



2



Pavel55

971 / 353 / 135

Регистрация: 27.10.2006

Сообщений: 764

24.01.2018, 11:51

3

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

Решение

либо так

C#
1
ObjWorkSheet = (Excel.Worksheet)ObjWorkBook.Worksheets["ОпцииПеречня"];

Добавлено через 4 минуты
kesean, там нужны квадратные скобки вокруг названия листа, круглые, думаю не подойдут



1



5 / 3 / 2

Регистрация: 14.12.2014

Сообщений: 71

24.01.2018, 12:40

 [ТС]

4

kesean, Pavel55, Спасибо вам обоим, подошли оба варианта!



0



290 / 289 / 108

Регистрация: 04.09.2010

Сообщений: 638

24.01.2018, 15:10

5

Цитата
Сообщение от Pavel55
Посмотреть сообщение

kesean, там нужны квадратные скобки вокруг названия листа, круглые, думаю не подойдут

Я не проверял, но это, вроде как функция.



0



971 / 353 / 135

Регистрация: 27.10.2006

Сообщений: 764

24.01.2018, 15:11

6

ну, раз у ТС получилось, значит при использовании get_Item нужно использовать круглые скобки



0



 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

Имеются листы с именами с Лист1 по Лист46 и есть условие некое.
Нужно перебрать листы, и если условие выполняется то внести в каждый изменения.
Допустим нахожу я имя листа. А Как назначить его активным для внесения изменений именно в него, а то у меня все в первый лист забивает?

Изменено: Kaban04.07.2013 19:16:19

 

Hugo

Пользователь

Сообщений: 23253
Регистрация: 22.12.2012

#2

04.07.2013 17:26:24

Чтоб внести изменения — совершенно не нужно назначать лист активным.

Код
Sub tt()
    Dim sh As Worksheet
    For Each sh In Worksheets
        If sh.[a1] = Empty Then sh.[a1] = 1
    Next
End Sub

И вообще, зачем имя?
Или проверять на условие нужно не все листы, а один или несколько определённых? Тогда цикл по массиву имён, проверяем конкретный лист по имени из массива.

Изменено: Hugo04.07.2013 17:35:53

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

Да я вообще из 1с-ки к Excel обращаюсь. Это всё и усложняет. Имя листа для меня это уникальный идентификатор в данном случаем.
Есть таблица значений, в одной из колонок в ней имеются номера. Так вот когда номер в колонке совпадает с номером листа в этот лист надо внести изменения. Я сделал перебор строк + перебор листов, но забиваются данные в первый лист. Поэтому нашел я этот форум и сюда пишу… Поэтому и решил что нужно сделать лист активным или выбрать или текущим назначить, не знаю даже  :(  
Пробовал Лист выбирать с Activate и Select: не хочет принимать

Изменено: Kaban05.07.2013 09:34:50

 

Hugo

Пользователь

Сообщений: 23253
Регистрация: 22.12.2012

«забиваются данные в первый лист» потому, что Вы код написали неправильно.
Ещё раз — нет никакой нужды активировать листы. Нужно просто изменить код.
Как пример см. выше — данные заносятся во все листы без всяких активаций.
Ну а как там конкретно в 1С — я не знаю, не работал. Но думаю, что если vbs может корректоно обращаться с листами — то сможет и 1С.

Да и перебор листов по описанию не нужен.

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

#5

05.07.2013 10:23:14

Цитата
Hugo пишет:

Да и перебор листов по описанию не нужен.

Вот этим ответом Вы меня совсем запутали. Как тогда обратиться к листу?
Пример, в таблице в колонке идут номера 3, 13, 22, 5
Мне надо найти листы с такими именами (3, 13, 22, 5) и забить в них данные из строки, с соответствующим номером. Я пишу так:
Получаю строку таблицы ТЗ
далее

Для НомерЛиста = 1 По КоличествоЛистов Цикл
ИмяЛиста = КнигаАЗК.WorkSheets(НомерЛиста).Name;
ну и
Если ТЗ.Номер = ИмяЛиста Тогда
ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста).Select;
ЛистАЗК.Cells(НомерСтроки, «C»).Value = ТЗ.Товар;
и так далее что-то забиваем…..
и все данные попадают в первый лист, а должны в 3, 13, 22 и 5

Какие еще варианты могут быть? Что не так по Вашему мнению?

Изменено: Kaban05.07.2013 10:25:34

 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

#6

05.07.2013 10:26:49

Цитата
Kaban пишет:
А Как назначить его активным

когда номер в колонке совпадает с номером листа

Уважаемый Kaban! Надо изначально писать, что у вас имеется некий список «номеров» листов и что надо оттуда взять этот номер. Только вот поясните, что значит «номер листа»? Индекс листа? Имя листа?

There is no knowledge that is not power

 

Hugo

Пользователь

Сообщений: 23253
Регистрация: 22.12.2012

#7

05.07.2013 10:27:26

«Мне надо найти листы с такими именами (3, 13, 22, 5)» — так зачем искать?
Обращайтесь напрямую к sheets(«3»)  , sheets(«13»)  , sheets(«22»)  , sheets(«5»)  , никаких переборов.
Если возможно, что такого листа может не быть — тогда нужно обработать ошибку. Ну это уже по задаче, это другой вопрос.

Код
sheets("13").range("A1")="test"

Изменено: Hugo05.07.2013 10:29:21

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

#8

05.07.2013 10:39:06

Цитата
Johny пишет:
Уважаемый Kaban! Надо изначально писать, что у вас имеется некий список «номеров» листов и что надо оттуда взять этот номер. Только вот поясните, что значит «номер листа»? Индекс листа? Имя листа?

Из 1с-ки обращаюсь к Excel впервые, что накопал в инете так и написал. Синтаксис возможно не тот, я не знаю.
А номерЛиста это числовая переменная для обращения к Номеру листа Excel чтобы получить дальше его имя.

Цитата
Hugo пишет:
Обращайтесь напрямую к sheets(«3»), sheets(«13»), sheets(«22»), sheets(«5»), никаких переборов.

А пройдет так: sheets(НомерЛиста) ??
+использовать range(«A1») наверно не могу, т.к. не знаю количество строк. Или можно написать range(«A1:G65000») ??

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

Ребят, а можно «для тех кто в танке» написать код?
Есть таблица:

Номер Знач1 Знач2 Знач3
5 142 173 292
44 567 345 789

Мне нужно найти лист с номером как в колонке «Номер» таблицы значений (он может быть любой). (Лист с именем точно существует)
И в этот лист внести изменения поячеично, т.е
ЛистАЗК.Cells(1, «B»   ;)  .Value = ТЗ.Знач1;
ЛистАЗК.Cells(1, «С»   ;)  .Value = ТЗ.Знач2;
ЛистАЗК.Cells(1, «D»   ;)  .Value = ТЗ.Знач3;

У нас жара +30, я туплю похоже или не то спрашиваю. Извините

Изменено: Kaban05.07.2013 10:46:28

 

Hugo

Пользователь

Сообщений: 23253
Регистрация: 22.12.2012

#10

05.07.2013 10:44:38

Можно и так

Код
sheets(НомерЛиста)

если НомерЛиста=3 или другое число.
Про количество строк — это уже другой вопрос, зависящий от кучи разных обстоятельств…

Только в общем случае нужно писать

Код
worksheets(3)

т.к. если будут другие, не рабочие листы — столкнётесь с ошибкой работы.

Изменено: Hugo05.07.2013 10:46:57

 

Hugo

Пользователь

Сообщений: 23253
Регистрация: 22.12.2012

#11

05.07.2013 11:00:21

Ну так вся проблема в том, как перебрать эту Вашу таблицу — это уже Ваша 1С сторона.
Далее в экселе просто:

Код
worksheets(n).Cells(1, "B").Value = Знач1
worksheets(n).Cells(1, "C").Value = Знач2
worksheets(n).Cells(1, "D").Value = Знач3
 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

#12

05.07.2013 11:04:19

Цитата
Hugo пишет:
Только в общем случае нужно писать

Код
 worksheets(3) 

т.к. если будут другие, не рабочие листы — столкнётесь с ошибкой работы.

В итоге должно быть так?
ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста)

 

Hugo

Пользователь

Сообщений: 23253
Регистрация: 22.12.2012

#13

05.07.2013 11:10:17

Что за ЛистАЗК и КнигаАЗК?
Но вполне возможна такая строка кода:

Код
set ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста)

Код
Sub tt()

    Dim КнигаАЗК As Workbook, ЛистАЗК As Worksheet, ИмяЛиста As Long

    ИмяЛиста = 2
    Set КнигаАЗК = ThisWorkbook
    Set ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста)

    ЛистАЗК.Range("A1").Value = "test"
    MsgBox ЛистАЗК.Range("A1")

End Sub

Изменено: Hugo05.07.2013 11:13:58

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

#14

05.07.2013 11:15:52

Цитата
Hugo пишет:
Что за ЛистАЗК и КнигаАЗК?
Но вполне возможна такая строка кода:

Код
 set ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста) 

Код
 Sub tt()

    Dim КнигаАЗК As Workbook, ЛистАЗК As Worksheet, ИмяЛиста As Long

    ИмяЛиста = 2
    Set КнигаАЗК = ThisWorkbook
    Set ЛистАЗК = КнигаАЗК.Worksheets(ИмяЛиста)

    ЛистАЗК.Range("A1").Value = "test"
    MsgBox ЛистАЗК.Range("A1")

End Sub
 

Спасибо, думаю это то,  что надо. Буду копать теперь как перенести это на язык 1с.

 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

Только учтите, что Sheets(3) и Sheets(«3») — это разные вещи.

There is no knowledge that is not power

 

Kaban

Пользователь

Сообщений: 8
Регистрация: 04.07.2013

#16

05.07.2013 11:43:08

Цитата
Johny пишет:
Только учтите, что Sheets(3) и Sheets(«3») — это разные вещи.

да :)  я уже догадался и исправил.

На чтение 6 мин. Просмотров 223 Опубликовано 21.05.2021

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

  • Поиск по имени рабочего листа с помощью VBA
  • Поиск по имени рабочего листа с помощью Создать список имен листов Kutools for Excel ( 5 шагов )
  • Поиск по имени рабочего листа с помощью области навигации Kutools for Excel ( 2 шага )

Содержание

  1. Быстрый поиск по имени рабочего листа с помощью Kutools for Excel
  2. Поиск по имени рабочего листа с помощью VBA
  3. Поиск по имени рабочего листа с помощью Create List of Sheet Names of Kutools for Excel
  4. Поиск по имени рабочего листа с панелью навигации Kutools for Excel
  5. Статьи по теме:

Быстрый поиск по имени рабочего листа с помощью Kutools for Excel

Теперь в Kutools for Excel улучшена его панель навигации и поддерживает простой поиск по имени листа, как показано на снимке экрана ниже. 30-дневная бесплатная пробная версия полнофункциональной версии!

Вкладка Office Включает редактирование и просмотр с вкладками в Office и делает вашу работу намного проще …

Подробнее … Скачать бесплатно …

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Повторно использовать что угодно: добавьте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
  • Более 20 текстовых функций: извлечение числа из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
  • Инструменты слияния: несколько книг и листов в одну; Объединить несколько ячеек/строк/столбцов без потери данных; Объедините повторяющиеся строки и суммируйте.
  • Инструменты разделения: разделение данных на несколько листов в зависимости от значения; Из одной книги в несколько файлов Excel, PDF или CSV; Один столбец в несколько столбцов.
  • Вставить пропуск скрытых/отфильтрованных строк; Подсчет и сумма по цвету фона; Массовая отправка персонализированных писем нескольким получателям.
  • Суперфильтр: создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделе, дню, частоте и т. Д. Фильтр жирным шрифтом, формулами, комментарием …
  • Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.

Подробнее … Бесплатная загрузка …

->


Поиск по имени рабочего листа с помощью VBA

Этот метод вводит макрос VBA для простого поиска на листе в активной книге.

1 . Одновременно нажмите клавиши Alt + F11 , чтобы открыть окно Microsoft Visual Basic для приложений.

2 . Нажмите Вставить > Module , а затем вставьте следующий код VBA в новое открывающееся окно модуля.

VBA: поиск по имени листа

3 . Нажмите клавишу F5 или кнопку Run , чтобы запустить этот VBA.

4 . Появится диалоговое окно поиска на листе, введите имя листа, на котором вы будете искать, и нажмите кнопку OK . См. Снимок экрана:

Появится другое диалоговое окно и сообщит, есть ли на листе найдено или нет. Просто закройте его.

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


Поиск по имени рабочего листа с помощью Create List of Sheet Names of Kutools for Excel

В приведенном выше VBA может быть непросто найти рабочий лист, если вы не можете точно запомните и введите имя рабочего листа. Этот метод познакомит вас с утилитой Kutools for Excel Create List of Sheet Names для быстрого поиска и перехода к рабочему листу.

Kutools for Excel – включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Бесплатная пробная версия!

Kutools for Excel – объединяет более 300 дополнительных функций и инструментов для Microsoft Excel

Перейти к загрузке
Бесплатная пробная версия 60 днейПокупка
PayPal/MyCommerce

->

1 . Нажмите Kutools Plus > Рабочий лист > Создать список имен листов , чтобы открыть диалоговое окно «Создать список имен листов». См. Скриншоты:

2 . В открывшемся диалоговом окне «Создать список имен листов» укажите параметры: (1) установите флажок Содержит список гиперссылок ; (2) введите имя для нового созданного индексного листа; (3) укажите место нового индексного листа; и (4) перечислить все имена рабочих листов в одном столбце на индексном листе.

3 . Нажмите кнопку ОК . Теперь создается новый индексный лист, который помещается перед всеми листами.

4 . Перейдите к индексной странице и одновременно нажмите клавиши Ctrl + F , чтобы открыть диалоговое окно «Найти и заменить», введите ключевое слово в Найдите поле и нажмите кнопку Найти все .. См. Снимок экрана:

Теперь все имена листов, содержащие ключевые слова, найдены и перечислены в нижней части окна поиска. и диалоговое окно “Заменить”. См. Диалоговое окно выше.

5 . Щелкните имя найденного листа в диалоговом окне «Найти и заменить», чтобы выбрать соответствующую ячейку, затем щелкните выбранную ячейку в индексном листе, и он сразу перейдет к соответствующему листу.

Демонстрация: поиск по имени листа в Excel

Kutools for Excel включает более 300 удобных инструментов для Excel, которые можно бесплатно попробовать без ограничений в течение 30 дней. Загрузить и бесплатную пробную версию !


Поиск по имени рабочего листа с панелью навигации Kutools for Excel

Если у вас установлен Kutools for Excel, вы можете легко искать листы по имени листа в области навигации. Пожалуйста, сделайте следующее:

Kutools for Excel – включает более 300 удобных инструментов для Excel. Полнофункциональная 30-дневная бесплатная пробная версия, кредитная карта не требуется! Получить сейчас

1 . По умолчанию открывается панель навигации. Если закрыто, нажмите Kutools > Панель навигации , чтобы отобразить панель навигации, а затем нажмите (Рабочая книга и лист) в левой части области навигации.

2 . Установите флажок Фильтр в области навигации и введите указанные ключевые слова в следующее поле. Теперь все листы, имена которых содержат указанные ключевые слова, будут найдены и перечислены в поле ниже. См. Снимок экрана:

Примечание : нажатие результаты поиска перескочат и сразу откроют соответствующий рабочий лист.

Демо: поиск по имени рабочего листа с помощью панели навигации Kutools for Excel

Kutools for Excel включает более 300 удобных инструментов для Excel, которые можно попробовать бесплатно без ограничения в течение 30 дней. Загрузить и бесплатную пробную версию !


Статьи по теме:

Создать гиперссылку в ячейке на другой лист в той же книге


Понравилась статья? Поделить с друзьями:
  • Открыть лист excel по дате
  • Открыть книгу excel с ошибками
  • Открыть книгу excel онлайн
  • Открыть книгу excel как текст
  • Открыть или исправить файл excel