Один посетитель сайта (Валерий) недавно спросил: «Есть ли инструмент поиска листа в книге по его названию». Возможное решение – просто выбрать лист из списка (рис. 1). Для этого кликните правой кнопкой мыши в левом нижнем углу экрана на одной из кнопок прокрутки.
Рис. 1. Выбор листа из списка
Скачать заметку в формате Word или pdf, примеры в формате Excel2013 (с макросами)
Однако, если у вас десятки (а то и сотни) листов, а также, если вы хотите найти лист с определенным названием, такой метод вряд ли будет хорош. Создайте отдельную страницу в книге, на которой разместите указатель, связав гиперссылкой каждую строку с соответствующим листом. Вы сможете создать фильтр или находить листы контекстным поиском. Указатель можно создать двумя способами. [1]
Возможно, вам покажется привлекательной идея создать указатель вручную. Создайте новый лист, назовите его Указатель или подобным именем, введите имена всех остальных листов и свяжите записи гиперссылками с соответствующими листами, пройдя по меню Вставка → Гиперссылка (рис. 2) или нажав сочетание клавиш Ctrl+K (К английское). Этот способ подойдет для книг с небольшим числом листов, которые будут меняться нечасто. Но даже в этом случае может быть затруднительно поддерживать актуальность указателя.
Рис. 2. Можно создать указатель вручную с помощью гиперссылок
Более универсальный, но и более сложный путь – добавить код VBA. В этом случае указатель будет создаваться заново каждый раз при переходе на лист с указателем (к сожалению, это может замедлять работу, если листов много).
1. Сохраните вашу книгу как файл с поддержкой макросов (рис. 3)
Рис. 3. Книга Excel с поддержкой макросов
2. Вставьте в вашу книгу новый лист и назовите его удобным именем — например, Указатель.
3. Правой кнопкой мыши щелкните ярлычок листа и в контекстном меню выберите команду Исходный текст (рис. 4).
Рис. 4. Исходный текст
4. В открывшемся окне введите код VВА (рис. 5). Во избежания ошибок, рекомендую код скопировать из модуля в файле Excel.
Private Sub Worksheet_Activate()
Dim wSheet As Worksheet
Dim l As Long
l = 1
With Me
.Columns(1).ClearContents
.Cells(l, 1) = "
INDEX"
.Cells(l, 1).Name = "
INDEX"
End With
For Each wSheet In Worksheets
If wSheet.Name <> Me.Name Then
l = l + 1
With wSheet
.Range("
A1"
).Name = "
Start"
& wSheet.Index
.Hyperlinks.Add Anchor:=.Range("
A1"
), Address:="
"
, SubAddress:= _
"
Index"
, TextToDisplay:="
Назад к указателю"
End With
Me.Hyperlinks.Add Anchor:=Me.Cells(l, 1), Address:="
"
, _
SubAddress:="
Start"
& wSheet.Index, TextToDisplay:=wSheet.Name
End If
Next wSheet
End Sub
Рис. 5. Код VBA
5. Нажмите Alt+Q, чтобы вернуться обратно к рабочей книге, и сохраните изменения. Не пугайтесь, что на листе Указатель ничего не произошло, и что вы не увидите ни одного макроса, если пройдете по меню Вид → Макросы. Код устроен таким образом, что его нельзя запустить никаким образом, кроме как перейдя на лист Указатель. Поэтому перейдите на любой лист, а затем вернитесь на лист Указатель. Наблюдайте, как работает макрос!
Обратите внимание, что ячейкам А1 на каждом листе присваивается имя Start#, где # – уникальное целое число, представляющее номер листа в указателе. Это гарантирует, что у ячейки А1 каждого листа будет уникальное имя. Если у ячейки А1 на вашем листе уже есть имя, необходимо каждое упоминание ячейки А1 в коде изменить на что-то более подходящее — например, любую неиспользуемую ячейку листа. Увидеть образовавшийся список имен можно, пройдя по меню Формулы → Диспетчер имен (рис. 6).
Рис. 6. Диспетчер имен
Дополнение от 23 сентября 2016 г.
Еще один способ создания указателя использует макрофункцию в именованной формуле (подробнее см. Функция Получить.Ячейку). [2] Откройте книгу, в которой много рабочих листов и/или листов с диаграммами, и выполните следующее:
- Вставьте новый лист, на котором будет находиться список (назовите его, например, Указатель).
- Выполните команду Формулы –> Присвоить имя, чтобы открыть диалоговое окно Создание имени.
- Впишите в поле Имя название Список.
- Введите следующую формулу в поле Диапазон (рис. 7): =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)
- Нажмите ОК, чтобы закрыть диалоговое окно Создание имени.
Рис. 7. Создание имени для именованной формулы
Обратите внимание: в формуле используется функция ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ, которая не относится к числу стандартных функций рабочего листа. Это макрофункция, написанная в сравнительно старом XLM-стиле и предназначенная для применения на специальном листе макросов. При использовании аргумента 1 она возвращает массив имен листов, причем перед именем каждого листа указано название книги, откуда он взят. Функции ЗАМЕНИТЬ и НАЙТИ удаляют имя книги, сопутствующее названию листа.
Чтобы сгенерировать имена листов, введите в ячейку А1 следующую формулу, а затем скопируйте ее ниже по столбцу: =ИНДЕКС(Слисок;СТРОКА()). На рис. 8 приведена данная формула для диапазона А1:А24. В книге 21 лист, поэтому формула возвращает ошибку #ССЫЛКА! при попытке отобразить имя несуществующего листа. Чтобы избежать этого, измените формулу следующим образом: =ЕСЛИОШИБКА(ИНДЕКС(Список;СТРОКА()));»»)
Рис. 8. Использование формулы для отображения списка имен листов
Список названий листов можно откорректировать, если вы переименовываете, добавляете или удаляете листы, но это не происходит автоматически. Чтобы принудительно обновить формулы, нажмите Ctrl+Alt+F9. Если вы хотите, чтобы имена листов обновлялись автоматически, измените формулу, чтобы сделать ее меняющейся: =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»; ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА()). Функия Т проверяет, является ли значение текстовым, и возвращает сам текст, если да, либо две кавычки «» (пустой текст), если нет.
Зачем может понадобиться список названий листов? На рис. 9 показано оглавление, созданное как указано выше, а таже ссылки на ячейку А1 соответствующего листа. Например, в ячейке В2 записана формула =ГИПЕРССЫЛКА(«#»&A2&»!A1″;»Перейти по ссылке»). Щелкнув на гиперссылке, вы активизируете лист и выделяете ячейку А1. К сожалению, Excel не поддерживает гиперссылки, ведущие на лист с диаграммами, поэтому при попытке сослаться на такой лист программа выдаст ошибку.
Если вы пользуетесь такими приемами, то книгу нужно сохранить как файл с поддержкой макросов (в формате *.xlsm).
Рис. 9. Создание списка гиперссылок
[1] По материалам книги Р.Холи, Д.Холи. Excel. Трюки, стр. 38–40
[2] По материалам книги Джон Уокенбах. Excel 2013. Трюки и советы. – СПб.: Питер, 2014. – С. 46–48.
Редактор Excel удобен тем, что в нем можно создавать несколько листов – рабочих зон с разной информацией. Соответственно, не нужно создавать отдельные книги под разные таблицы.
Случается, что листы пропадают из нижней панели навигации, хотя вы точно знаете, что в этой книги их несколько и они должны отображаться. Выглядит это так.
Причин, почему это происходит, несколько. Если пропали листы в Эскель, нужно найти эту причину и сделать несложное действие, чтобы восстановить страницы книги. Мы будем работать с версией 2016, но перечисленные ниже действия актуальны и для более ранних (2007, 2010, 2013).
Содержание
- Листы удалены
- Полоса прокрутки
- Панель ярлыков
- Скрытые листы
- Суперскрытые листы
- Подводим итоги
Листы удалены
Самый очевидный варианты – вы случайно удалили листы, поэтому они не отображаются на нижней панели. В этом случае восстановить их будет крайне сложно. Единственное спасение – если вы еще не сохранялись.
В этом случае нужно просто выйти из программы, при этом не соглашаясь на сохранение. Таким образом восстановится изначальная версия документа, где листы еще в целости и сохранности.
Однако помните, что в таком случае не сохранятся последние изменения в документе. Хорошо, если вы спохватились об удаленных листах через минут пять после их удаления. Если же вы поняли ошибку через час и все это время правили документ – такая ситуация сложнее. Придется выбирать – сохранять изменения или же вернуть удаленные листы.
Второй вариант восстановить листы – попробовать найти предыдущие версии файла, которые сохраняются автоматически.
Переходим в меню «Файл» на верхней панели. В первой же вкладке «Сведения» находим «Версии» и смотрим, какие версии нам предлагает программа. По умолчанию автосохранение срабатывает каждые 10 минут. Выберете ту, которая была сделана еще до того, как вы удалили листы.
Обращаем внимание, что такой вариант восстановления возможен тогда, когда в настройках включен режим автосохранения.
Полоса прокрутки
Самый легкий вариант восстановления. Проблема здесь только в том, что нижняя полоса прокрутки таблицы переместилась поверх иконок с листами.
Нажимаем на троеточие левой кнопкой мышки и тянем полосу прокрутки вправо. Курсор должен принять форму, показанную на скриншоте. Сразу же появляются наши листы.
Панель ярлыков
Возможно, была выключена панель ярлыков. В таком случае на нижней панели не будут ярлыки с листами.
Снова заходим в меню «Файл» и выбираем там пункт «Параметры».
В разделе «Дополнительно» прокручиваем настройки вниз, дойдя до пункта «Параметры отображения книги». Здесь нам нужно установить маркер напротив «Показывать ярлычки листов».
Скрытые листы
Чтобы определенный лист не мешал в работе с другими, его можно скрыть. Скрытый лист исчезает с нижней панели навигации и кажется, будто он исчез. Нет, он легко восстанавливается.
Нажимаем на любой лист правой кнопкой мышки. В меню выбираем пункт «Показать». Кстати, если этот пункт будет неактивным, значит в книге нет скрытых листов.
У нас он активный, поэтому появляется вот такое окно. В окошке – список скрытых листов документа. Выбираем лист и нажимаем «ОК». Теперь Лист 3 будет отображаться на панели.
Суперскрытые листы
Более сложный вариант, когда листы скрываются на уровне разработчика при помощи макросов. Предыдущим способом такие страницы не найти. Нам нужно подключить макросы VBA и включить режим разработчика.
Заходим в параметры Excel. На вкладке «Настроить ленту» устанавливаем маркер напротив «Разработчик».
Далее переходим во вкладку «Центр управления безопасностью» и кликаем на «Параметры центра…».
На вкладке «Параметры макросов» устанавливаем маркеры, как показано на скриншоте.
Нажимаем «ОК» в этом окне и в окне общих параметров.
В документе вызываем редактор макросов комбинацией клавишей Alt+F11.
Появляется список листов в левой панели. Например, у нас не отображается Лист 5. Нажимаем на него и переходим в самый низ – пункт Visible. Если этот лист суперскрытый, он будет иметь значение 2 – Very Hidden. Меняем это значение на 1 – Visible.
Редактор макросов можно теперь закрыть, изменения сохраняются автоматически. Теперь все суперскрытые листы должны отображаться на нижней панели навигации.
Подводим итоги
Восстановить листы в Excel можно с помощью 5 способов:
- если они были удалены, не сохранять изменения или попробовать восстановить предыдущую версию автосохранения;
- переместить полосу прокрутки вправо, чтобы на не закрывала ярлыки листов;
- включить в параметрах программы отображение ярлычков;
- восстановить скрытые листы двумя кликами;
- воспользоваться редактором макросов, чтобы восстановить суперскрытые страницы.
Если пропали листы в Excel, воспользуйтесь одним из предложенных способов.
Еще много интересного о редакторе Excel на нашем сайте:
Как найти и убрать циклические ссылки в Excel?
Как создать умную таблицу в Excel?
Функция ВПР в EXCEL: описание и синтаксис.
Конвертируем XLSX в XLS онлайн.
Многие сталкивались с файлами Ексель, в которых создано огромное количество листов. Чтобы найти нужный лист нужно прокрутить все созданные в книге листы.
Но есть более простой способ быстро открыть нужный лист.
Щелкните правой кнопкой мыши на кнопки прокрутки листов, которые находятся слева от названия листов и выберите нужный лист:
Как снять пароль в Excel? Три рабочих способа снятия пароля.
Способ 1. (Используем программу) Ищем в поисковике и загружаем программу
Как собрать несколько книг Excel в одну?
Например, мы имеем много рабочих книг Excel, и мы хотим
Что такое макрос и куда его вставлять в Excel?
Нам в работе иногда не хватает стандартных возможностей Эксель и приходится напрягать
Как добавить абзац в ячейке Excel?
Достаточно часто при заполнении ячейки текстом, возникает необходимость ввести текст
Как посчитать количество уникальных значений в колонке Excel?
Иногда в работе нам нужно посчитать уникальные значения в определенной
Отсортировать уникальные значения в Excel
Предположим, что у нас есть такая таблица с перечнем соглашений,
Как сделать и добавить выпадающий список в Excel?
В Excel есть одна интересная особенность, а именно возможность вводить
Как быстро перейти в нужный лист книги Excel?
Многие сталкивались с файлами Ексель, в которых создано огромное количество
Определить, есть ли лист в книге с заданным именем
Есть ли лист с определенным именем в книге?
Коллеги, подскажите, как определить это? Спасибо!
Определить существует ли лист в книге
Привет всем. Подскажите пожалуйста как определить существует ли лист в книге имя которого.
Проверить есть ли файл с заданным именем в папке
Здравствуйте. Мне необходимо проверить есть ли файл с таким именем в папке, и если есть, то.
Как создать новый лист в книге со ссылкой на предыдущий лист?
Добрый день. Есть реестр учета спецтехники. Его заполняет диспетчер каждый день. т.е. каждый день.
Сообщение было отмечено как решение
Решение
AndreA SN, я, конечно, рискую, но ради Вас готов разок получить по шее.
Вы задаёте так много интересных вопросов по Excel’ю, ответы на которые давным-давно лежат в сети.
а у меня к Вам один вопрос: Вы в курсе, что существуют поисковые системы?
Сообщение было отмечено как решение
Решение
Сообщение было отмечено как решение
Решение
Ну и мои 5 копеек.
Можно использовать ADODB-соединение к книге екселя, открыть рекордсет для OpenSchema с параметром adSchemaTables. Проход по рекордсету даст все листы книги. Поиск по рекордсету позволит найти заданное имя. Метод удобен для поиска листов из внешнего файла.
да в курсе я))) но такого количества толковых ответов да еще сконцентрированных в одном месте Вы там не найдете))) Поисковая система для профи))) а я, слава Богу, вопросы пока учусь задавать. При этом решаю свои насущные задачки. Вот что гарантированно могу сказать — то не деньги я Вашими ответами зарабатываю)))
А вообще по моему профилю я не считаю, сколько раз мне задают один и тот же вопрос. Я просто отвечаю. А программирование — совсем не мой профиль)))
а если серьезно — пока тут висит один мой вопрос — я занимаюсь другими. На расшифровку поисковика нет совсем времени. И английский плохо знаю опять же. Вообщем благодарствую сказал.
Добавлено через 3 минуты
Кстати, о невеждах, ikki)))
Слепой иногда пройдет там, где зрячий оступится)))
Не вижу здравого смысла в сообщении #4: это засорение интернета ненужной информацией по данному вопросу и усложнение для непрограммистов, которым просто нужно написать макрос.
Поиск в программе Microsoft Excel
В документах Microsoft Excel, которые состоят из большого количества полей, часто требуется найти определенные данные, наименование строки, и т.д. Очень неудобно, когда приходится просматривать огромное количество строк, чтобы найти нужное слово или выражение. Сэкономить время и нервы поможет встроенный поиск Microsoft Excel. Давайте разберемся, как он работает, и как им пользоваться.
Поисковая функция в Excel
Поисковая функция в программе Microsoft Excel предлагает возможность найти нужные текстовые или числовые значения через окно «Найти и заменить». Кроме того, в приложении имеется возможность расширенного поиска данных.
Способ 1: простой поиск
Простой поиск данных в программе Excel позволяет найти все ячейки, в которых содержится введенный в поисковое окно набор символов (буквы, цифры, слова, и т.д.) без учета регистра.
- Находясь во вкладке «Главная», кликаем по кнопке «Найти и выделить», которая расположена на ленте в блоке инструментов «Редактирование». В появившемся меню выбираем пункт «Найти…». Вместо этих действий можно просто набрать на клавиатуре сочетание клавиш Ctrl+F.
После того, как вы перешли по соответствующим пунктам на ленте, или нажали комбинацию «горячих клавиш», откроется окно «Найти и заменить» во вкладке «Найти». Она нам и нужна. В поле «Найти» вводим слово, символы, или выражения, по которым собираемся производить поиск. Жмем на кнопку «Найти далее», или на кнопку «Найти всё».
При нажатии на кнопку «Найти далее» мы перемещаемся к первой же ячейке, где содержатся введенные группы символов. Сама ячейка становится активной.
Поиск и выдача результатов производится построчно. Сначала обрабатываются все ячейки первой строки. Если данные отвечающие условию найдены не были, программа начинает искать во второй строке, и так далее, пока не отыщет удовлетворительный результат.
Поисковые символы не обязательно должны быть самостоятельными элементами. Так, если в качестве запроса будет задано выражение «прав», то в выдаче будут представлены все ячейки, которые содержат данный последовательный набор символов даже внутри слова. Например, релевантным запросу в этом случае будет считаться слово «Направо». Если вы зададите в поисковике цифру «1», то в ответ попадут ячейки, которые содержат, например, число «516».
Для того, чтобы перейти к следующему результату, опять нажмите кнопку «Найти далее».
Так можно продолжать до тех, пор, пока отображение результатов не начнется по новому кругу.
Способ 2: поиск по указанному интервалу ячеек
Если у вас довольно масштабная таблица, то в таком случае не всегда удобно производить поиск по всему листу, ведь в поисковой выдаче может оказаться огромное количество результатов, которые в конкретном случае не нужны. Существует способ ограничить поисковое пространство только определенным диапазоном ячеек.
-
Выделяем область ячеек, в которой хотим произвести поиск.
Способ 3: Расширенный поиск
Как уже говорилось выше, при обычном поиске в результаты выдачи попадают абсолютно все ячейки, содержащие последовательный набор поисковых символов в любом виде не зависимо от регистра.
К тому же, в выдачу может попасть не только содержимое конкретной ячейки, но и адрес элемента, на который она ссылается. Например, в ячейке E2 содержится формула, которая представляет собой сумму ячеек A4 и C3. Эта сумма равна 10, и именно это число отображается в ячейке E2. Но, если мы зададим в поиске цифру «4», то среди результатов выдачи будет все та же ячейка E2. Как такое могло получиться? Просто в ячейке E2 в качестве формулы содержится адрес на ячейку A4, который как раз включает в себя искомую цифру 4.
Но, как отсечь такие, и другие заведомо неприемлемые результаты выдачи поиска? Именно для этих целей существует расширенный поиск Excel.
-
После открытия окна «Найти и заменить» любым вышеописанным способом, жмем на кнопку «Параметры».
В окне появляется целый ряд дополнительных инструментов для управления поиском. По умолчанию все эти инструменты находятся в состоянии, как при обычном поиске, но при необходимости можно выполнить корректировку.
По умолчанию, функции «Учитывать регистр» и «Ячейки целиком» отключены, но, если мы поставим галочки около соответствующих пунктов, то в таком случае, при формировании результата будет учитываться введенный регистр, и точное совпадение. Если вы введете слово с маленькой буквы, то в поисковую выдачу, ячейки содержащие написание этого слова с большой буквы, как это было бы по умолчанию, уже не попадут. Кроме того, если включена функция «Ячейки целиком», то в выдачу будут добавляться только элементы, содержащие точное наименование. Например, если вы зададите поисковый запрос «Николаев», то ячейки, содержащие текст «Николаев А. Д.», в выдачу уже добавлены не будут.
По умолчанию, поиск производится только на активном листе Excel. Но, если параметр «Искать» вы переведете в позицию «В книге», то поиск будет производиться по всем листам открытого файла.
В параметре «Просматривать» можно изменить направление поиска. По умолчанию, как уже говорилось выше, поиск ведется по порядку построчно. Переставив переключатель в позицию «По столбцам», можно задать порядок формирования результатов выдачи, начиная с первого столбца.
В графе «Область поиска» определяется, среди каких конкретно элементов производится поиск. По умолчанию, это формулы, то есть те данные, которые при клике по ячейке отображаются в строке формул. Это может быть слово, число или ссылка на ячейку. При этом, программа, выполняя поиск, видит только ссылку, а не результат. Об этом эффекте велась речь выше. Для того, чтобы производить поиск именно по результатам, по тем данным, которые отображаются в ячейке, а не в строке формул, нужно переставить переключатель из позиции «Формулы» в позицию «Значения». Кроме того, существует возможность поиска по примечаниям. В этом случае, переключатель переставляем в позицию «Примечания».
Ещё более точно поиск можно задать, нажав на кнопку «Формат».
При этом открывается окно формата ячеек. Тут можно установить формат ячеек, которые будут участвовать в поиске. Можно устанавливать ограничения по числовому формату, по выравниванию, шрифту, границе, заливке и защите, по одному из этих параметров, или комбинируя их вместе.
Если вы хотите использовать формат какой-то конкретной ячейки, то в нижней части окна нажмите на кнопку «Использовать формат этой ячейки…».
После этого, появляется инструмент в виде пипетки. С помощью него можно выделить ту ячейку, формат которой вы собираетесь использовать.
После того, как формат поиска настроен, жмем на кнопку «OK».
Бывают случаи, когда нужно произвести поиск не по конкретному словосочетанию, а найти ячейки, в которых находятся поисковые слова в любом порядке, даже, если их разделяют другие слова и символы. Тогда данные слова нужно выделить с обеих сторон знаком «*». Теперь в поисковой выдаче будут отображены все ячейки, в которых находятся данные слова в любом порядке.
Как видим, программа Excel представляет собой довольно простой, но вместе с тем очень функциональный набор инструментов поиска. Для того, чтобы произвести простейший писк, достаточно вызвать поисковое окно, ввести в него запрос, и нажать на кнопку. Но, в то же время, существует возможность настройки индивидуального поиска с большим количеством различных параметров и дополнительных настроек.
Отблагодарите автора, поделитесь статьей в социальных сетях.
ВПР с поиском по нескольким листам
ВПР по всем листам (43,0 KiB, 12 619 скачиваний)
Если необходимо найти какое-либо значение в большой таблице очень часто применяется функция ВПР. Но ВПР работает только с одной таблицей и нет никакой возможности средствами самой функции просмотреть искомое значение на нескольких листах. Если поиск необходимо осуществить только по двум листам, то можно схитрить:
=ВПР( A1 ;ЕСЛИ(ЕНД(ВПР( A1 ;Лист2!A1:B10;2;0));Лист3!A1:B10;Лист2!A1:B10);2;0)
А когда листов больше? Можно плодить ЕСЛИ. Но это во-первых совсем не наглядно и во-вторых очень непрактично, т.к. при добавлении или удалении листов придется править всю мега-формулу. Да и при работе с количеством листов более 10 есть большой шанс, что длина формулы выйдет за пределы допустимой.
Есть небольшой прием, который поможет искать значение в указанных листах. Для начала необходимо создать на листе список листов книги, в которых искать значение. В приложенном к статье примере они записаны в диапазоне $E$2:$E$5 .
=ВПР( A2 ;ДВССЫЛ(«‘»&ИНДЕКС( $E$2:$E$5 ;ПОИСКПОЗ(ИСТИНА;СЧЁТЕСЛИ(ДВССЫЛ(«‘»& $E$2:$E$5 &»‘!A1:A50″); A2 )>0;0))&»‘!A:B»);2;0)
Формула вводится в ячейку как формула массива — т.е. сочетанием клавиш Ctrl+Shift+Enter. Это очень важное условие. Если формулу не вводить в ячейку как формулу массива, то необходимого результата не получить.
Попробую кратенько описать принцип работы данной формулы.
Перед чтением дальше советую скачать пример:
ВПР по всем листам (43,0 KiB, 12 619 скачиваний)
ДВССЫЛ нам нужна для преобразования текстового представления ссылок на листы в действительные. Подробно не буду останавливаться на принципе работы ДВССЫЛ, просто приведу этапы вычислений:
СЧЁТЕСЛИ(ДВССЫЛ(«‘»& $E$2:$E$5 &»‘!A1:A50»); A2 )
В результате вычисления данного блока у нас получается массив из количества повторений искомого значения на каждом из указанных листов: СЧЁТЕСЛИ(<1;0;0;0>;A2) . Поэтому следующий блок
ПОИСКПОЗ(ИСТИНА;СЧЁТЕСЛИ(ДВССЫЛ(«‘»& $E$2:$E$5 &»‘!A1:A50»); A2 )>;0;0)
работает именно с этим:
ПОИСКПОЗ(ИСТИНА;СЧЁТЕСЛИ(<1;0;0;0>; A2 )>0;0)
Читать подробнее про СЧЁТЕСЛИ
в результате чего мы получаем позицию имени листа в массиве имен листов $E$2:$E$5 , с помощью ИНДЕКС получаем имя листа и подставляем это имя уже к ДВССЫЛ, а она в ВПР:
=ВПР( A2 ;ДВССЫЛ(«‘»&ИНДЕКС(<«Астраханьоблгаз»:»Липецкоблгаз»:»Оренбургоблгаз»:»Ростовоблгаз»>;1)&»‘!A:B»);2;0) =>
=ВПР( A2 ;ДВССЫЛ(«‘Лист2’!A:B»);2;0) =>
=ВПР( A2 ;’Лист2′!A:B;2;0)
Что нам и требовалось. Теперь если в книгу будут добавлены еще листы, то необходимо будет всего лишь дописать их к диапазону $E$2:$E$5 и при необходимости этот диапазон расширить. Так же можно задать диапазон $E$2:$E$5 как динамический и тогда необходимость в правке формулы отпадет вовсе.
Используемые в формуле величины:
A2 — ссылка на ячейку с искомым значением. Т.е. указывается то значение, которое требуется найти на листах.
$E$2:$E$5 — диапазон с именами листов, в которых требуется осуществлять поиск указанного значения ( A1 ).
Диапазон «‘!A1:A50» — это диапазон, в котором СЧЁТЕСЛИ ищет совпадения. Поэтому указывается только один столбец данных. При необходимости следует расширить или изменить. Можно указать так же «‘!A:A» , но при этом следует учитывать, что указание целого столбца может привести к значительному увеличению времени выполнения функции. Поэтому имеет смысл просто задать диапазон с запасом, например «‘!A1:A10000» .
«‘!A:B» — диапазон для аргумента ВПР — Таблица. В первом столбце этого диапазона на каждом из указанных листов ищется указанное значение ( A2 ). При нахождении возвращается значение из указанного столбца. Читать подробнее про ВПР>>
В примере к статье так же можно посмотреть формулу, которая для каждого значения подставляет имя листа, в котором это значение было найдено.
ВПР по всем листам (43,0 KiB, 12 619 скачиваний)
Так же можно искать по нескольким листам разных книг , а не только по нескольким листам одной книги. Для этого необходимо будет в списке листов вместе с именами листов добавить имена книг в квадратных скобках: [Книга1.xlsb]Май
[Книга1.xlsb]Июнь
[Книга2.xlsb]Май
[Книга2.xlsb]Июнь
Перечисленные книги обязательно должны быть открыты
Решил добавить простенькую функцию пользователя(UDF) для тех, кому проще «общаться» с VBA, чем с формулами. Функция ищет указанное значение во всех листах книги, в которой записана(даже в скрытых):
Function VLookUpAllSheets(vCriteria As Variant, rTable As Range, lColNum As Long, Optional iPart As Integer = 1) As Variant Dim rFndRng As Range If iPart <> 1 Then iPart = 2 For i = 1 To Worksheets.Count If Sheets(i).Name <> Application.Caller.Parent.Name Then With Sheets(i) Set rFndRng = .Range(rTable.Address).Resize(, 1).Find(vCriteria, , xlValues, iPart) If Not rFndRng Is Nothing Then VLookUpAllSheets = rFndRng.Offset(, lColNum — 1).Value Exit For End If End With End If Next i End Function
Функция попроще, чем ВПР — последний аргумент(интервальный_просмотр) выполняет несколько иные, чем в ВПР функции. Хотя полагаю немногие его используют в классическом варианте.
rTable — указывается таблица для поиска значений(как в стандартной ВПР)
vCriteria — указывается ссылка на ячейку или текстовое значение для поиска
lColNum — указывается номер столбца в таблице rTable, значение из которого необходимо вернуть — может быть ссылкой на столбец — СТОЛБЕЦ().
iPart — указывается метод просмотра. Если не указан, либо указана цифра 1, то поиск осуществляется по полному совпадению с ячейкой. Но в таком варианте допускается применение подстановочных символов * и ?. Если указано значение, отличное от 1, то совпадение будет отбираться по части вхождения. Если в vCriteria указать «при», то совпадением будет считаться и слово «прибыль»(первый буквы совпадают) и «неприятный»(в середине встречается «при»). Но в этом случае знаки * и ? будут восприниматься «как есть». Может пригодиться, если в искомом тексте присутствуют символы звездочки и вопросительного знака и надо найти совпадения, учитывая эти символы.
Статья помогла? Поделись ссылкой с друзьями!
Надстройка для поиска на всех листах книги Excel
Надстройка SearchText предназначена для поиска заданного текста в книге Excel, с выводом результатов поиска на отдельный лист.
При запуске надстройка формирует панель инструментов, с которой осуществляется запуск всех макросов:
В Excel 2007 и 2010 панель инструментов можно найти на вкладке «Надстройки»:
Надстройка SearchText является расширенной версией надстройки для поиска на текущем листе.
Назначение кнопок надстройки:
— поле для ввода искомого текста. Нажатие клавиши Enter запускает поиск.
— удаление листа с результатами поиска. (выполняется автоматически при повторном поиске)
— кнопки для включения (красная) и выключения (белая) режима подсветки значений, больших, чем введенное число
(число запрашивается в диалоговом окне при нажатии на красную лампочку)
или — переключатель режимов поиска
(щелкните на этой кнопке для переключения режима поиска)
При запуске поиска (вводе числа в текстовое поле, и нажатии Enter) макрос создаёт в текущем файле дополнительный лист (с названием «Результаты поиска»),
и копирует на этот лист все строки, в которых содержится заданный текст.
Выполняется поиск по частичному совпадению текста (т.е., при поиске текста 1234 будут найдены ячейки, содержащие числа 12345, 5612348 и т.д.)
На листе с результатами поиска устанавливается ширина столбцов, совпадающая с шириной столбцов исходного листа, если поиск выполняется по одному листу,
или на лист результатов добавляется дополнительный столбец, в котором для каждой найденной строки указывается, на каком из листов она была найдена:
В режиме поиска по всем листам книги Excel найденные строки группируются по названию листа-источника, заголовок каждого блока строк окрашивается в произвольный цвет.
Во время выполнения происка отображается прогресс-бар, отображающий количество найденных строк, и текущее действие (поиск или копирвоание результатов)
Как в excel сделать поиск по всем листам
Ингвар, доброго времени.
В качестве не очень изящного, но всё-таки решения могу предложить следующую формулу, которую можно протянуть по всем ячейкам Вашего примера. Вставлять в B3 на Листе1.
На первый взгляд выглядит довольно объёмно и страшно, но если разобраться — довольно проста.
Простейшая функция для поиска — ВПР. С её помощью можно найти данные по одной таблице. Что, я уверен, Вы уже с лёгкостью делаете. Если ВПР будет искать в таблице, где НЕТ того, что мы ищем (например, если искать «единицу» на «Листе3» Вашего примера), формула выдаёт ошибку Н/Д. И это свойство можно использовать.
Функция ЕСЛИОШИБКА проверяет то, что мы вводим. И если наша функция внутри ЕСЛИОШИБКИ выдает, например, Н/Д, то ЕСЛИОШИБКА выдаст нам второе значение, записанное через точку с запятой. И моя формула построена следующим образом:
= ЕСЛИОШИБКА (*искать в первой таблице* ; *если не нашли в первой таблице, ищем во второй* )
При этом внутрь условного куска *если не нашли в первой таблице, ищем во второй* можно вложить вторую ЕСЛИОШИБКА для просмотра ещё одной таблицы. Что я и сделал. Получилось:
= ЕСЛИОШИБКА (*искать в первой таблице* ; ЕСЛИОШИБКА ( *искать во второй таблице* ; *искать в третьей таблице) )
При этом таких вложений из ЕСЛИОШИБКА можно сделать не ограниченное количество.
Замечу, что важно закрепить каждую таблицу внутри ВПР долларами, прибить гвоздями так сказать, чтобы не уехала таблица при протяжке формулы вниз.
Советы и лайфхаки по работе с Excel
Многие сталкивались с файлами Ексель, в которых создано огромное количество листов. Чтобы найти нужный лист нужно прокрутить все созданные в книге листы.
Но есть более простой способ быстро открыть нужный лист.
Щелкните правой кнопкой мыши на кнопки прокрутки листов, которые находятся слева от названия листов и выберите нужный лист:
Как снять пароль в Excel? Три рабочих способа снятия пароля.
Способ 1. (Используем программу) Ищем в поисковике и загружаем программу
Как собрать несколько книг Excel в одну?
Например, мы имеем много рабочих книг Excel, и мы хотим
Что такое макрос и куда его вставлять в Excel?
Нам в работе иногда не хватает стандартных возможностей Эксель и приходится напрягать
Как добавить абзац в ячейке Excel?
Достаточно часто при заполнении ячейки текстом, возникает необходимость ввести текст
Как посчитать количество уникальных значений в колонке Excel?
Иногда в работе нам нужно посчитать уникальные значения в определенной
Отсортировать уникальные значения в Excel
Предположим, что у нас есть такая таблица с перечнем соглашений,
Как сделать и добавить выпадающий список в Excel?
В Excel есть одна интересная особенность, а именно возможность вводить
Как быстро перейти в нужный лист книги Excel?
Многие сталкивались с файлами Ексель, в которых создано огромное количество
Поиск в программе Microsoft Excel
Смотрите такжеDim iFirstAddress As на регистр не find — это примитивная фильтрация, но установлено On Error Dim col As помощи. 2) = iRng.Address(0,Dim iFoundSht As и без формы… то должно возвращаться нетЕсть несколько таблицОткроется окно, в выше, поиск ведется этого курсор перейдет
В документах Microsoft Excel, String, iSecondAddress As
Поисковая функция в Excel
смотрел при сравнении довольно длинный процесс. жутко неудобно, особенно Resume Next - Object, arr, elВ файлике описана 0) Worksheetshurun999
Способ 1: простой поиск
#Н/Дdendy_81 товаров разных поставщиков правом верхнем углу по порядку построчно. на ту ячейку которые состоят из String по Like.
- Тут прозвучало предложение когда ищешь по т.е. продолжить работу arr = Split(«D проблемма.iLastRow = iLastRowDim FirstAddress As: какой фаил?В самый конец: класс! формула сокращена с одинаковыми полями, которого, есть строка Переставив переключатель в Excel, по записи большого количества полей,Dim iFoundRng AsLubaxa
- по массиву… Но, всем страницам и процедуры, но в E G Hdavaispoem + 1 Stringshurun999 вставить: до минимума! Спасибо расположенных на разных поиска. В этой позицию которой пользователь сделал часто требуется найти Range: Спасибо огромное HUGO121!!! если честно, я по нескольким критериям… коллекцию ничего не J K M
- : в другом форматеSet iRng =Dim TextToFind As: вот фаилIf rFndRng Is вам за помощь листах.
строке пишем поисковую«По столбцам» щелчок. определенные данные, наименованиеIf Len(ComboBox2.Value) = были другие дела, с ними вообще Надо сделать общий добавляется), которая и N») On Errorsva
.FindNext(iRng) VariantAntikBantik Nothing Then VLookUpAllSheets (и Alexander_V тоже).Вид: Артикул/Наименование/Цена и фразу, слова. Мы, можно задать порядокЕсли у вас довольно строки, и т.д. 1 Then MyLeight поэтому добралась разбираться дела не имела поиск по БД. отлавливается Err, по Resume Next For: Формула для планаLoop While iRng.AddressDim iLastRow As:
= «#N/A» Вставил в свою т.д. написали «посчитать стаж». формирования результатов выдачи,
масштабная таблица, то Очень неудобно, когда = 8 со всем только и тем более
- Я, если честно этому признаку и i = 9=ИНДЕКС(ДВССЫЛ(«‘»&C11&»‘»&»!$C$7:$C$10″);ПОИСКПОЗ(Факт!B11;работы;0)) <> FirstAddress Longshurun999End Function базу — работает!Требуется составить заказ Во время ввода начиная с первого в таком случае приходится просматривать огромноеIf Len(ComboBox2.Value) = в эти выходные… смутно представляю, как с Visual Basic определяется повторение значения To 57 StepsvaElseDim iShtName As, нужно вытащить данныеили в начало Только вот функция на отдельном листе. поисковой фразы сразу столбца.
Способ 2: поиск по указанному интервалу ячеек
не всегда удобно количество строк, чтобы 2 Then MyLeight Вчера отредактировала, запустила можно записать поиск на «Вы» - ячейки. 2 Set col: Формула для остаткаMsgBox «Значение « String со всех листовDim rFndRng As ищет неполное совпадение
- Чтобы при вводе идет поиск.В графе
- производить поиск по найти нужное слово = 9 — все о.к. с помощью массива…. составляла только небольшиеna4ik = New Collection (массивная, вводить Ctrl+Shift+Enter) & TextForFind &Set iFoundSht = которые есть в Range по одному или номера в поле
Способ 3: Расширенный поиск
Получился такой результат.«Область поиска» всему листу, ведь или выражение. СэкономитьApplication.ScreenUpdating = False работает!!!! Еще разHugo121 расчетные программки. Перерыла: Точно угадали и
For Each sh=E11-СУММ(ЕСЛИ((C11=$C$11:C11);ЕСЛИ((B11=$B$11:B11);$D$11:D11))) » не найдено!», Sheets(«Поиск») ‘лист «Поиск» файле?VLookUpAllSheets = «#N/A» нескольким символам, и «Артикул» осуществлялся поискНажимаем на нужный документ,определяется, среди каких в поисковой выдаче время и нервы ‘обновление экрана wykl спасибо!!!: Ну цикл по весь интернет и объяснили. In Worksheets Fordavaispoem 48, «Ошибка» присваиваем переменнойshurun999А уже юзер отображает первое найденное данных по всем он откроется. конкретно элементов производится может оказаться огромное поможет встроенный поискWith Columns(1)
Была мысль сделать массиву не сложный: даже не могуТолько добавлю - Each el In: Роман, здравствуйте! Ваша
- End IfiFoundSht.Range(«A5:AA5000»).Clear ‘очищаем диапазон: нужно при вводе проверять должен на значение (ввёл «22», листам, и занесение
- Внимание! поиск. По умолчанию, количество результатов, которые Microsoft Excel. ДавайтеSet iFoundRng = также поиск поSub tt() Dim понять, с чего если добавлять
arr t = формула для планаEnd With ячеек на листе номера телефона открывалась ЕНД() или еслиошибка() а нашла «220156»). найденного в остальныхЧем точнее укажем это формулы, то в конкретном случае разберемся, как он .Find(ComboBox2.Value & «*» 2 критериям, но a(), i&, s$ начинать, какие функцииcol.Add t sh.Range(el & i).Value работает замечательно, спасибо,Next Поиск вся о нем и подставлять что А мне надо поля. место хранения документа, есть те данные, не нужны. Существует работает, и как & Right(ComboBox1.Value, 2)) думаю, что это a = Sheets(«2006»).[a1].CurrentRegion.Value использовать и т.д.то в коллекцию
If Len(t) Then все у меняEnd Sub’TextToFind = Application.InputBox(«Введите информация, а поиск ему нравится - найти значение поМожно ли это тем быстрее произойдет которые при клике способ ограничить поисковое
им пользоваться.If Not iFoundRng не понадобится. Удачи! For i = Подскажите, пожалуйста… добавятся все кого col.Add t, t получилось, а вотпо вашим словам строку для поиска» происходил по всем пробел, пустую строку, всем символам, по сделать с помощью
поиск документа. по ячейке отображаются пространство только определеннымСкачать последнюю версию Is Nothing ThenMedvedoc 1 To UBound(a)Идея такова: БД положим, без отбора If Err Then в формуле по я могу оставить & Chr(13) & листам 0 и т.п. количеству и по функции ВПР()? ЕслиНапример, мы указали в строке формул. диапазоном ячеек. ExceliFirstAddress = iFoundRng.Address: Здравствуйте форумчане! =) If a(i, 4) в Excel на уникальных. MsgBox sh.Name & остатку заложены два только последнюю часть Chr(13) & «Например:раньше сам делалdendy_81 их порядковому расположению можно, то как такой путь – Это может бытьВыделяем область ячеек, в
Поисковая функция в программеDo Как сделать поиск = Sheets(1).[a1].Value Then ~ 10 листах
Т.е. объект Collection «-» & el условия, выбор по данного кода? Lexus или Lexus поиск, но давно: Извиняюсь, что долго (по артикулу). Т.е., задать диапазон листов? «Этот компьютер» - слово, число или которой хотим произвести Microsoft Excel предлагает
If Len(iFoundRng.Value) = по листам всей s = a(i, по годам (много таки может содержать & i & адресу и выбор
Юрий М 350″, «Поиск», «Lexus это было, не не появлялся (нэта если я ввелИли же нужно
«Документы» (мы помним, ссылка на ячейку. поиск. возможность найти нужные MyLeight Then
книги? Чтобы на 1) & «|» колонок). Скажем какая-то одинаковые элементы «-» & t: по названию работы,: «Убрал» жёлтую ячейку, 350″) помню уже. не было). «200543», то и писать макрос для что документ находится При этом, программа,Набираем на клавиатуре комбинацию текстовые или числовыеListBox1.AddItem iFoundRng & титульном листе была
- & a(i, 2) форма на первомHugo121 Err.Clear Next Next если одно из удалил кнопку, данныеTextToFind = iFoundSht.Range(«B2»)Hugo121
Спасибо всем участникам найти должна только поиска по всем в папке «Документы») выполняя поиск, видит клавиш значения через окно «|» & iFoundRng.Offset(0, ячейка для ввода & «|» & листе, где вводятся: Даже если занесены Next End Sub них совпадает, то выводятся в однуIf TextToFind =: куда? за полезную информацию!
значение «200543». Что
lumpics.ru
Поиск документа Excel по содержимому текста.
листам книги? – «Excel» (в только ссылку, аCtrl+F «Найти и заменить». 1).Value слова для поиска a(i, 3) &
поисковые критерии. И
одинаковые значения то Внимание! Код чуть
формула берет значение ячейку. «» Or TextToFindгде? Особенно The_Prist за надо поменять вSerge папке «Документы» есть не результат. Об
, после чего запуститься Кроме того, вEnd If и кнопка «поиск». «|» & a(i, на этом же ключи будут разные…. изменил — и в сумму, ноMedvedoc
= False ThenА если ранее полную и содержательную
функции? И как
: Можно. две папки «Word» этом эффекте велась знакомое нам уже
приложении имеется возможностьSet iFoundRng = Поиск слова должен 4) MsgBox s листе выводятсяВот например - сразу нашёл одну там нужно сделать: спасибо большое! =) Exit Sub ‘если уже делали поиск функцию, а Лузеру в функции, еслиAlexander_V
и «Excel». Мы речь выше. Для окно расширенного поиска данных. .Columns(1).FindNext(iFoundRng) происходить по всем
Sheets(1).[B1].Value = s
все сколько будет единиц накладку: 4 курс-M51-проф. так чтобы совпадало
я немного подправил ничего не ввели — то ведь за её доработку при поиске не: Вот ссылка помним, что документ, того, чтобы производить
«Найти и заменить» Простой поиск данных в
iSecondAddress = iFoundRng.Address листам книги и End If Next
найденные результаты (строки в коллекции и Оніпко В.В. одновременно два условия ваш макрос под — Выход! нет проблем открыть и «#N/A».
найдено совпадений, оставить(топик третий снизу) который мы ищем, поиск именно по. Дальнейшие действия точно программе Excel позволяетLoop While iSecondAddress выводить полученные результаты End SubВ А1 по всем колонкам) где будет ошибка?Hugo121 (адрес и работа), свой шаблон, чтобыTextToFind = Trim(TextToFind) справку и освежитьПосле этой темы строки пустыми илиGuest находится в конкретной результатам, по тем такие же, что найти все ячейки,
<> iFirstAddress в определенное поле первого листа пишите в виде таблицы.Sub tt() Dim: Огромное спасибо, вы а то суммирует вместо адреса ячейки ‘убираем начальные и знания? Там всё у меня появился заполнить пунктирами (вместо: Посмотрел я файл папке «Excel»). данным, которые отображаются и при предыдущем в которых содержитсяElse: MsgBox «Нет или в виде
имяфамилию, выполняете код. Поиск надо составить col As New очень помогли…буду теперь все подряд… выводилось содержимое самой
конечные пробелы предельно ясно, и интерес к изучению нулей)? с примером функции.Если документ находится в ячейке, а способе. Единственное отличие введенный в поисковое данных» гипрессылки переходить наТ.к. может быть по 4-5 критериям Collection On Error разбираться з кодом
помогите пожалуйста поправить… ячейки =)Application.ScreenUpdating = False пример кода есть. VBA. Буду мыслить!ytk5kyky Получается, в ней на флэшке, то не в строке будет состоять в окно набор символовEnd If требуемую страницу. несколько совпадений - (или колонкам). Resume Next col.AddА подскажите еще
excel-office.ru
Поиск данных по всем листам.
na4ikMedvedoc ‘отключаем обновление экрана
shurun999Kilrex: Может тогда поменять нужно описывать каждый указываем (выделяем) флэшку.
формул, нужно переставить том, что поиск
(буквы, цифры, слова,End WithWindows 7 цикл гоним досложность еще заключается 1, «1» col.Add пожалуйста, какую строку: В VB почти: а как сделать,
For Each iSheet: это было лет: А что еще местами порядок vCriteria лист, где надо
Сначала, естественно, вставим переключатель из позиции выполняется только в и т.д.) без
Application.ScreenUpdating = True: Развлекайтесь. (см. файл)
конца. в том, что
1 col.Add 1,
и куда прописать, нечего не шарю…говорю чтобы результаты поиска In ThisWorkbook.Worksheets ‘поиск 10 назад. нужно прописать в и rTable? И
искать. (=VlookupNumberX($B12;E$9;0;Таблица1!$A$1:$E$15;Таблица2!$A$1:$E$15;Таблица3!$A$1:$E$15)) флэшку в ноутбук.«Формулы» указанном интервале ячеек. учета регистра.
‘обновление экрана wklkovaxВ Вашем случае в некоторых местах
«1» On Error что бы эти сразу) выводились в одной по листамв окно поиска,а коде функции VLookUpAllSheets
еще добавить псевдоА это очень : )в позициюКак уже говорилось выше,Находясь во вкладкеEnd Sub
: всё здорово, но могут быть трудности БД одному названию GoTo 0 col.Add ячейки выделилась еще
Проблема: нужно сделать ячейке, а неIf iSheet.Name <> в соседнем окне
чтобы она показывала «интервальный просмотр», который длинная формула (уВторой вариант.«Значения» при обычном поиске«Главная»
Юрий М вот если на с диакритическими знаками (или накладной) принадлежит 1 col.Add 1, например жёлтым цветом? поиск ячейки в в двух? iFoundSht.Name Then выводился результат.
сумму трех значений будет менять xlWhole/xlPart? меня около 15-тиПоиск книги. Кроме того, существует
в результаты выдачи, кликаем по кнопке
: Medvedoc, Вы уже листе искомое слово
— их видно несколько строк…. То «1» End SubСкажуna4ik
определенном диапазоне на
Юрий МIf iSheet.FilterMode =Hugo121 в строке идущихytk5kyky листов с прайсами
Excel по тексту в возможность поиска по
попадают абсолютно все«Найти и выделить» СТОЛЬКО написали, а встречается несколько раз, только на листе, ли можно как-то по секрету -
: sh.Range(el & i) ВСЕХ листах.: Какой смысл выводить True Then iSheet.ShowAllData
: Так и делайте
за искомым значением?: Я устыдился давать товаров). ней примечаниям. В этом ячейки, содержащие последовательный
, которая расположена на никто ещё не
то выводится ссылка
ну или на
их вписать в
3, но ошибки видишь? Вот еёесли можно, укажите
значение, если Вы ‘если на листе — там вВ документе 46 листов,
ТЗ и сделалМне надо, наподобие. случае, переключатель переставляем набор поисковых символов
ленте в блоке видел Вашего файла. всего лишь на
форму можно вывести, поиск, то ли
не избежать в и крась. Как некоторые комментарии. ИМЕННОГО его задали установлен автофильтр, то опциях можно задать и по 5 сам, чуть иначе. функции ВПР(), ноНам нужно найти в позицию в любом виде инструментовMedvedoc первое встреченное совпадение, установив нужный фонт. придется все-таки присваивать 9 строке! — запиши рекордером.p.s. Вся задача в поиске? :-) снимаем его поиск по всей страниц на каждом,Function VLookUpAllSheets(vCriteria As только поиск осуществлять книгу Excel, в«Примечания» не зависимо от«Редактирование»: так файлик прикреплен а как быть
Lubaxa каждой название….Hugo121Вот так например заключается в том Впрочем, Вам виднее…Set iFoundRng =
книге, показывать все. есть ли возможность Variant, rTable As по всем листам.
которой есть слово. регистра.. В появившемся меню в самом верху с остальными?
: Спасибо. Буду разбираться….Помогите, пожалуйста, а, извините что снова — и проорёт,
что бы, создатьЮрий М iSheet.Cells.Find(TextToFind, , xlFormulas,Правда не все
искат ьво всей Range, lColNum AsВ примере (прикрепленный «январь». Пишем этоЕщё более точно поискК тому же, в выбираем пункт
=) там windowskovaxА со знаками то даже не беспокою, но не и напишет, и
макрос который проверяет: Вы мой последний
xlPart) связанные данные увидите…
книеге одновременно, а Long, Optional XlLookAt
файл), поиск происходит
слово в строке можно задать, нажав выдачу может попасть«Найти…»
7 выложил готовое: а ещё круто
особых проблем нет. представляю с чего
могли бы подсказать
покрасит:
не попадает ли
файл открывали?
If Not iFoundRng
shurun999
не на каждм As String =
по полю «Артикул» поиска (смотрите первый на кнопку не только содержимое. Вместо этих действий решение, но это было бы сделать Они нормально воспринимаются, начинать и что как еще сделатьDim sh As один и тотMedvedoc Is Nothing Then: как? листе отдельно? Ато «xlWhole») As Variant для таблицы «Прайс», вариант, который мы«Формат» конкретной ячейки, но можно просто набрать решение выводит в возможным поиск по если установить правильно использовать…. такую же проверку, Worksheet Dim col же преподаватель в: конечно открывал =) ‘если нашлиесли помнил не
46 раз просить’rTable — указывается а данные отображаются рассмотрели выше).
. и адрес элемента, на клавиатуре сочетание результатах поиска по части слова язык. На крайний
Спасибо. ток по аудиториям? As Object, arr,
несколько групп на мне понравился.FirstAddress = iFoundRng.Address спрашивал бы тут его найти одно
таблица для поиска в полях «Наименов»,»кол-во»Получится такой результат.При этом открывается окно на который она
клавиш одному значению с
к примеру в случай — поправкаобразец приложен.
пробовал сделать по
el arr =
факультете на однойЯ имел в
‘запоминаем адрес найденной
shurun999 и тоже както значений(как в стандартной и «цена».Третий вариант. формата ячеек. Тут ссылается. Например, в
Ctrl+F каждого листа при ячейке написано Вася фонтом.
Watcher_1 тому же принципу Split(«D E G и той же виду, что у ячейки, чтобы продолжить: ни кто не
тяжко. ВПР)Alexander_VКак найти нужный документ
можно установить формат ячейке E2 содержится. наличии на каждом ПупкинHugo121: Думаю тут однозначно что и проверка
planetaexcel.ru
Как искать слово в книге excel?
H J K паре. вас текст найдено поиск по листу поможет с моимВалерий беляев’vCriteria — указывается: Посмотрел я файл из открытого документа ячеек, которые будут формула, которая представляетПосле того, как вы
из этих листовпри вводе в: Как вариант - нужно для каждой
преподавателей, ток задал
M N») On
Заранее спасибо располагается в столбце
Do вопросом?
: Pasha Ram -
ссылка на ячейку
с примером функции.Excel. участвовать в поиске. собой сумму ячеек
перешли по соответствующим по несколько одинаковых ячейку пупк находилась1. сперва обязательно строки название!
Поиск по именам вкладок в Excel?
другой массив: Error Resume NextКой что попытался А, а текстWith iFoundShtHugo121
ты сам то или текстовое значение Получается, в нейВ открытом документе Можно устанавливать ограничения A4 и C3. пунктам на ленте, значений =) например ячейка содержащая эти что-то пишите вПосле этого ужеarr = Split(«F For i = набросать…но ток по ячейка в столбце
iLastRow = .Cells(.Rows.Count,: Без формы.
пробовал?
для поиска
нужно описывать каждый Excel переходим на по числовому формату,
Эта сумма равна
или нажали комбинацию на листе имеется
буквы, т.е. ячецка пустые J1 шапок
легче будет консолидировать I L O
9 To 57
1 листу работает(
В. Вот я
1).End(xlUp).Row ‘определяем последнюю
MedvedocОтвет:’lColNum — указывается лист, где надо
закладку «Файл» (в
по выравниванию, шрифту,
Поиск по нескольким листам в одной книге
10, и именно «горячих клавиш», откроется два значения в с Васей Пупкиным обоих листов! данные из нескольких R») ………….. For Step 2 SetSub search_main() Dim и говорю что заполненную строку на: Как сделать так,Нажимаешь Ctrl+F номер столбца в
искать. (=VlookupNumberX($B12;E$9;0;Таблица1!$A$1:$E$15;Таблица2!$A$1:$E$15;Таблица3!$A$1:$E$15)) Excel 2013) или границе, заливке и это число отображается окно виде цифры 5,Medvedoc2. копируете шапку таблиц в одну i = 8
col = New rng As Range результат поиска выводится листе поиск
чтобы по заданномуВ открывшемся окне
таблице rTable, значениеА это очень
нажимаем на кнопку защите, по одному в ячейке E2.«Найти и заменить» при поиске результат: я согласен с с любого листа
по нескольким критериям To 56 Step Collection For Each ‘ область Dim в двух ячейках.If iLastRow = в поисковике значению
нажимаешь «Параметры» из которого необходимо длинная формула (у «Office» в левом
из этих параметров, Но, если мы
во вкладке
покажет с этого kovax =) если на первый лист.Hugo121 2но почему выводит sh In Worksheets name1 With Worksheets(«1 А как сделать
1 Then iLastRow находились все результатыВ открывшихся окошечках
вернуть — может меня около 15-ти верхнем углу (в
или комбинируя их зададим в поиске«Найти» листа только первое слово встретиться два Это как понимаете
: Думаю можно сделать слишком много лишних
For Each el курс») Set rng
так, чтобы он = 4 ‘если
на всех листах. выбираешь «В книге» быть ссылкой на листов с прайсами
Excel 2007). вместе.
CyberForum.ru
как сделать поиск по всем листам книги?
цифру «4», то. Она нам и значение =) раза, то поисковик работа разовая. так - значений…возможно это из In arr t = .Range(«D12:X11») name1 был только в лист пуст, то Приложенный файлик содержитВводишь что искать столбец — СТОЛБЕЦ() товаров).В появившемся диалоговомЕсли вы хотите использовать среди результатов выдачи нужна. В полея нашел другой выведет только первое3. под шапкой1. заполняете свои того что ячейки = sh.Range(el & = Range(«D11»).Value For одной ячейке? Например вставлять будем начиная макрос, который выводитНажимаешь «Найти все»
’XlLookAt — Optional.Мне надо, наподобие
окне нажимаем на формат какой-то конкретной
будет все та«Найти» макрос поисковика, где найденое значение на
(2 строка) пишите 4-5 критериев (можно соединенны = i).Value If Len(t) Each cell In в ячейке G? с 7-й строки результат поиска толькоЗЫ: Это в Can be one функции ВПР(), но функцию «Открыть». Появится ячейки, то в же ячейка E2.вводим слово, символы,
отчасти реализовано то, странице =) а что угодно в в любом порядке,p.s. как можно Then col.Add t, rng If cell
Юрий МIf iShtName <> первого значения листа 2007, другого нет of the following только поиск осуществлять
список последних книг нижней части окна Как такое могло или выражения, по что надо. Но как быть с соотв. ячейки - любые, можно не сделать что бы t If Err = name1 Then: Вы про какой iSheet.Name Then ‘если
и так со — проверить не XlLookAt constants: xlWhole по всем листам.
Excel, с которыми
нажмите на кнопку
получиться? Просто в которым собираемся производить
надо оттуда приспособить остальными?
будут отобраны данные все), жмёте кнопку.
в сообщение выводило Then MsgBox sh.Name
MsgBox («Ошибка») cell.Interior.Color файл говорите? Ща
новый прайс-лист всей книги. Например,
могу or xlPart. Default
В примере (прикрепленный мы работали. Ищем«Использовать формат этой ячейки…»
ячейке E2 в поиск. Жмем на код к макросу
А так поисковик строк с полным2. код берёт и первый входящий & «-» & = RGB(255, 255, точно забаню!
With .Cells(iLastRow +
ищет цифру 5.Majya penzeva — «xlWhole» файл), поиск происходит среди них. Если.
качестве формулы содержится кнопку Windows 7, ЧТОБЫ
в принципе нормально совпадением по этим
первый критерий, через элемент, при совпадении?По el & i
0) End IfMedvedoc
1, 1) ‘проставляем Но если на: Нажмите Ctrl+F вDim rFndRng As по полю «Артикул»
документ давно неПосле этого, появляется инструмент адрес на ячейку
«Найти далее» ПОЛУЧИЛОСЬ 100% ЗАДУМАННОЕ работает =)
полям. find ищет его аудиториям много повторов: & «-» &
Next cell End
: ВАМ БЫ ЛИШЬ
имя листа листе таких цифр всплывшем окне внесите Range
для таблицы «Прайс», открывали и его в виде пипетки. A4, который как, или на кнопку =)
GuestВыполняете код (можно на первом листе.
1 курс-L14-каф t Debug.Print sh.Name With End Sub
ЗАБАНИТЬ =) у.Value = «Лист: 5 примерно штук нужное слово иFor i =
а данные отображаются
нет в списке, С помощью него раз включает в
«Найти всё»Прикрепил во вложение: А Вы и на первый лист Если нашёл, ищет
1 курс-R14-каф & «-» &
Watcher_1
меня просто уже
» & iSheet.Name 10, то поисковик выбирите найти все.
1 To Worksheets.Count в полях «Наименов»,»кол-во»
то нажимаем на
можно выделить ту себя искомую цифру. файлик поисковика, нарытого
не просили такой в шапке поместить
в этой же
4 курс-I14-25
el & i
: так? голова от этих
& » Ячейка: выведет только первую
Если в экселе стопиццот
If Sheets(i).Name <>
и «цена».{/post}{/quote} кнопку «Компьютер». ячейку, формат которой 4.При нажатии на кнопку на аналогичной теме.
поиск. любой рисунок/кнопку, на
строке второй и2 курс-I24-СК
& «-» &
Sub search_main() Dim макросов едет. Извините, » & iFoundRng.Address(0, найденную цифру 5
вкладок с разными Application.Caller.Parent.Name Then
Не поверите -Затем, нажимаем на кнопку вы собираетесь использовать.Но, как отсечь такие,
«Найти далее»
Мой как вы
Medvedoc него повесить макрос):
остальные (думаю можно
2 курс-L24-СК t sh.Range(el &
rng As Range не внимательно смотрел.
0)
этого листа. Как
именами, как можноWith Sheets(i)
у меня тоже «Обзор». В появившемсяПосле того, как формат
и другие заведомомы перемещаемся к
выражаетесь файл, выложил: А Вы и
Честно говоря, код цикл в цикле
2 курс-O24-СК
i).Interior.Color = vbYellow ‘ îáëГ*Г±ГІГј Dim Сейчас увидел. Спасибо’добавляем гиперссылку
сделать так, чтобы
найти среди них
Set rFndRng =
ровно 15 листов
диалоговом окне в поиска настроен, жмем неприемлемые результаты выдачи первой же ячейке,
Windows 7 и не просили такой не вылизывал, может перебрать критерии/ячейки)2 курс-R24-СК
Err.Clear End If name1 For j вам огромное заiFoundSht.Hyperlinks.Add Anchor:=iFoundSht.Cells(iLastRow + выводились и остальные нужную, не просматривая .Range(rTable.Address).Resize(, 1).Find(vCriteria, , с таблицами :),и
строке поиска пишем на кнопку поиска? Именно для где содержатся введенные от него надо поиск.{/post}{/quote}
есть ещё какие3. если все1 курс-I30-СК Next Next Next = 1 To помощь! =)
1, 1), Address:=»», значения данной страницы, все имена?
xlValues, IIf(XlLookAt = формула тоже очень поисковую фразу или
«OK» этих целей существует группы символов. Сама отталкиваться, поскольку этоВозможно думал о блохи. Да и нашлись — копирует1 курс-L30-СК End SubТолько изначальную Sheets.Count With Sheets(j)Скажите пожалуйста с _ соответствующие заданному значениюАлексей матевосов (alexm) «xlWhole», xlWhole, xlPart))
длинная получилась(кто если слово. Мы написали. расширенный поиск Excel.
ячейка становится активной. оптимальный вариант решения таком поиске =) ускорить код тоже данные.1 курс-O30-СК очистку от покраски Set rng = чего лучше начатьSubAddress:=»‘» & iSheet.Name
для поиска? То: Когда стопиццот листов,If Not rFndRng
не мы формуле «визитка». Появится списокБывают случаи, когда нужноПосле открытия окна
Поиск и выдача результатов =)
но не описал можно — перевести4. Через findnext
1 курс-R30-СК лень писать - .Range(«D12:X11») name1 =
изучать создание макросов? & «‘» & есть как сделать
то переход от Is Nothing Then путь к таблицам
файлов Excel, имеющим произвести поиск не«Найти и заменить» производится построчно. Сначала
Юрий М до конца сути
всё на массивы, продолжает поиск на
1 курс-L34-каф
да это на
Range(«D11»).Value For Each
Юрий М
«!» & iFoundRng.Address, так, чтобы остальные одного листа кVLookUpAllSheets = rFndRng.Offset(, напишет), но зато в тексте слово по конкретному словосочетанию,любым вышеописанным способом,
обрабатываются все ячейки: Правильно — это
=) копирование тоже. Но
этом листе.1 курс-R34-каф
практике вероятно и cell In rng: Литература (можно найти ScreenTip:=»Перейти на лист девять цифр 5 другому можно сделать
lColNum — 1).Value работает :) «визитка». а найти ячейки, жмем на кнопку первой строки. Если не Ваш файл,
А возможен такой будет непонятнее.
5. На этом
3 курс-F34-25 не нужно. If cell = в «Копилке») и
» & iSheet.Name тоже выводились в
так. Кликнуть правойExit For
Попробую сообразить пользовательскуюВнимание!
в которых находятся
«Параметры» данные отвечающие условию Вы даже поленились
вариант?
Так будет чуть листе больше нет4 курс-I34-25Апострофф name1 Then MsgBox Форум/Форумы.’.Font.Bold = True результатах поиска? кнопкой мышки поEnd If функцию для поискаВнизу этого окна поисковые слова в. найдены не были, набросать пример, аMedvedoc быстрее и надёжнее: — ищем аналогично4 курс-I36-25: Очень помогли, спасибо)
(«ГЋГёГ»ГЎГЄГ*») cell.Interior.Color =
planetaexcel.ru
Поиск по всем листам
mlm1 ‘выделяем жирнымЮрий М любой стрелочке листания
End With по всем листам, мы выбрали место любом порядке, даже,
В окне появляется целый программа начинает искать
помощи ждёте. Вот: А Вы иOption Explicit Sub на следующем.2 курс-I40-СК…ток почему то RGB(255, 255, 0): Добрый деньEnd With: Вариант. листов, в нижнем
End If
но ничего не поиска «Все файлы если их разделяют
ряд дополнительных инструментов во второй строке, и сейчас - не просили такой tt() Dim shЕсли конкретно известно,2 курс-L40-СК закрашивает где нет End If Nextрезультат можно сделатьEnd IfKuklP левом углу. ЕслиNext i обещаю .
Excel». Здесь мы другие слова и
для управления поиском. и так далее, просите поиск по поиск.{/post}{/quote} As Worksheet, el, что ищем и2 курс-O40-СК ошибки= cell End With в виде ссылок’iFoundRng.EntireRow.Copy Destination:=.Cells(.Cells(.Rows.Count, 1).End(xlUp).Row: EducatedFool выкладывал надстройку. листов очень много,End FunctionPS: Я только можем выбрать другой символы. Тогда данные
По умолчанию все пока не отыщет ВСЕЙ книге, аВозможно думал о
CritArr(), a(), i&, где по столбцам2 курс-R40-СК…хотелось бы немного
Next End Sub на ячейки? + 1, 1)Medvedoc то в открывшемсяСправка на англицком, учусь.
вид файла. Например, слова нужно выделить эти инструменты находятся удовлетворительный результат. в книге всего таком поиске =)
s$, flag As — код может
1 курс-L52-СК улучшить знание поna4ikИнтересует вывод всех
‘копируем всю строку: Я уж думал меню можно выбрать
звиняйте — лень.dude нам нужно найти
с обеих сторон
в состоянии, какПоисковые символы не обязательно один лист. Не но не описал
Boolean, n&, ind&, быть проще, можно1 курс-R52-СК
VB в excel…не: Да, так спасибо)….ток совпадающих значений на
iShtName = iSheet.Name вы меня забаните
все листы. РезультатAlexander_V: так? текст в Excel’евском
знаком «*». Теперь при обычном поиске,
должны быть самостоятельными показали — куда до конца сути x& CritArr = делать не через4 курс-F52-25 подскажите какую то я немного по листе ‘запоминаем имя листа =) увидите.: класс! формула сокращенаdendy_81 файле со словами в поисковой выдаче но при необходимости элементами. Так, если выводить найденное… Много =) Application.Trim(Sheets(1).[A2:M2].Value) ind = find, а циклом4 курс-F54-25 методичку…или лучше скинь другом прописал:Юрий МEnd With
Ваш вариант тожеМожно сделать и до минимума! Спасибо: посмотрел ваш файл визитка. Тогда мы
будут отображены все можно выполнить корректировку. в качестве запроса будет желающих делать
А возможен такой 3 Application.ScreenUpdating = по массиву данных.Sub search_main() Dim те при возможностиКод For i
: А разве неSet iFoundRng = прикольный. Но встает поиск макросом VBA. вам за помощь
— не совсем выберем функцию «Все ячейки, в которыхПо умолчанию, функции
будет задано выражение за Вас файл? вариант?{/post}{/quote} False Sheets(1).UsedRange.Offset(2).Clear ForWatcher_1 sh As WorksheetHugo121 = 1 To все выводятся? iSheet.Cells.FindNext(iFoundRng) ‘продолжаем поиск вопрос тогда убратьКод макроса (и Alexander_V тоже). понятна формула: =ДВССЫЛ(АДРЕС(raw($A5);СТОЛБЕЦ();1;1;lst($A5))). файлы». Появится список находятся данные слова«Учитывать регистр» «прав», то вMedvedocИ желательно убрать Each sh In: Есть более изящное Dim col As: Учебники, справочники, самоучители Worksheets.Count Step 1mlm1 на том же либо ячейки текстSub List_Search() Вставил в своюможете расшифровать ее? всех разных файлов в любом порядке.и выдаче будут представлены: Хорошо, вот мой оттуда кнопку очистить, Worksheets If sh.Name
решение через SQL Object, arr, el
na4ik With Worksheets(i): А да выводятся
листе для поиска иstrInput = InputBox(«Введите базу — работает!при ее копировании со словом «визитка»
Как только настройки поиска«Ячейки целиком»
все ячейки, которые файл. а очищение сделать <> «Sheet1» ThenHugo121 ‘arr = Split(«D: Почему это нет?Как бы теперь
всеLoop While iFoundRng.Address
желтую ячейку с имя листа книги», Только вот функция и вставке в — и текст установлены, следует нажатьотключены, но, если
содержат данный последовательныйНо там нет автоматическим по истечению a = sh.[a1].CurrentRegion.Value: Да, если конкретно
E G H Как этот проф. сделать так, чтоМожно сделать чтобы <> FirstAddress цифрой 5 совсем, «Поиск листов книги») ищет неполное совпадение мой лист «заказ» в Word, и
на кнопку мы поставим галочки набор символов даже реализации поиска. Пользователь 30 секунд For i = известно, что ищем J K M
Оніпко В.В. может бы этот цикл выводились например полностьюEnd If поскольку она грубоok = 0 по одному или появляется ошибка «#ИМЯ?», файл Excel, и«Найти всё» около соответствующих пунктов, внутри слова. Например, Windows 7 предложилMedvedoc 1 To UBound(a) и где по N») arr =
одновременно преподавать Грунтознавство перемещался вниз по значения (а не
End If говоря дублирует вашу
If strInput <>
нескольким символам, и а в исходнике картинки с названиемили
то в таком релевантным запросу в свой файл. Я
: посмотрел код более flag = True: столбцам. Split(«F I L
у П-32 и строкам…и при этом ссылки на ячейки)Next iSheet
кнопку. И вывод «» Then отображает первое найденное появляется ошибка «#ЗНАЧ!» «визитка», т.д.«Найти далее» случае, при формировании этом случае будет его протестировал и внимательнее =) а n = 0Но на массивах O R») On Методика навчання біології же менялось начальноеНапример надо найтиApplication.ScreenUpdating = True должен быть вFor i = значение (ввёл «22»,а в вашем
Как найти файл, чтобы перейти к результата будет учитываться считаться слово «Направо». обнаружил незначительный минус,
можно сделать так, For Each el в таком случае Error Resume Next у П-44? значение переменной name1 цифру 5 ‘включаем обновление экрана одну ячейку в 1 To Worksheets.Count
а нашла «220156»). исходнике всё работает. определенного типа, смотрите поисковой выдаче. введенный регистр, и Если вы зададите
который и описал
чтобы вместо номера
In CritArr If
будет не менее
‘For i =
Да ещё и
Watcher_1
Результат с ссылками
MsgBox «Поиск завершён!»,
виде текста как
If Worksheets(i).Name =
А мне надо
Guest
в статье «Поиск
Как видим, программа Excel
точное совпадение. Если
в поисковике цифру
выше. И эт
ячейки выводилось ее
flag Then n
изящно, и думаю
9 To 57
в разных аудиториях?
: Я так понял
(например) 64, «Поиск» в моем файлике strInput Then найти значение по: эта функция VLookup документа Word по представляет собой довольно вы введете слово «1», то в оне значит, что название, точнее текст, = n + проще/понятнее. И скорее Step 2 ForХотя я аудитории это мысли в5End Sub =)Sheets(strInput).Select всем символам, по у меня не тексту» тут. Принцип простой, но вместе с маленькой буквы, ответ попадут ячейки, поленился. который в ней 1 If Len(el) всего будет работать i = 8 не учитывал - слух? Иначе я51
Sub Finder()либо реализовано какok = 1 количеству и по хочет работать. может один. с тем очень то в поисковую которые содержат, например,Также на похожей
CyberForum.ru
БД в Excel: организовать поиск по всем листам и по нескольким критериям
содержится? Then If Application.Trim(a(i,
быстрее. И нет To 56 Step правильно было бы не вижу никакой156Dim iRng As я хотел, тоEnd If их порядковому расположению подскажете, как ееВ Excel можно функциональный набор инструментов выдачу, ячейки содержащие число «516». теме нашел другойMedvedoc n)) <> el особых требований к 2 Set col смотреть, чтоб если смысловой нагрузки…
567 Range, TextForFind As есть сохранить мойNext i (по артикулу). Т.е., прописать в мой искать данные функциями, поиска. Для того, написание этого словаДля того, чтобы перейти вариант поисковика, который: Заменил в строчке Then flag = таблицам. = New Collection аудитория и предметna4ik
Юрий М String, FirstAddress As файлик, но сIf ok = если я ввел файл? можно искать, выбирать, чтобы произвести простейший с большой буквы, к следующему результату, реализован на одном
.Value = «Лист: False: Exit ForWatcher_1 For Each sh совпадают, то и
: Скорее это вопрос)
: Это ведь совсем
String, n As вашей реализацией всех 0 Then MsgBox «200543», то и
тухачевский переносить данные в писк, достаточно вызвать как это было опять нажмите кнопку
листе, но при » & iSheet.Name End If End
: Судя по ТЗ In Worksheets For препод должен повторяться!..можно ли как другая задача (а
Integer, iLastRow As результатов со всего «Листа с таким найти должна только: посмотрел ваш файл другое место, в поисковое окно, ввести бы по умолчанию,«Найти далее» этом выводит результаты
& » Ячейка: If Next If как раз известно,
Each el InКак это прикрутить то задать смену
то я уже Long листа =) именем нет»
значение «200543». Что — не совсем другую таблицу, бланк, в него запрос, уже не попадут.. поиска всех найденных » & iFoundRng.Address(0,
flag Then ind что к какому arr t =
— думать не значение ячейки?…что то сделал и формированиеiLastRow = Cells(Rows.Count,Medvedoc
End If надо поменять в понятна формула: =ДВССЫЛ(АДРЕС(raw($A5);СТОЛБЕЦ();1;1;lst($A5))). т.д. формулами. Какими и нажать на Кроме того, еслиТак можно продолжать до значений, заданных изначально. 0)
= ind + столбцу привязано. Единственное sh.Range(el & i).Value хочу, да и плана: гиперссылок). Уточните проблему, 1).End(xlUp).Row: спасибо за предложение,End Sub
функции? И какможете расшифровать ее? способами можно искать кнопку. Но, в включена функция тех, пор, пока Мне надо как-тозначение iFoundRng.Address(0, 0)
1 For x неудобство это, что If Len(t) Then может и неj=11 Set rng чтобы не переделыватьRange(Cells(5, 1), Cells(iLastRow но надстройку неshurun999 в функции, еслипри ее копировании данные в Excel, то же время,«Ячейки целиком» отображение результатов не данную возможность реализовать на iFoundRng.Offset(0, 0) = 1 To к одной строке col.Add t, CStr(t) нужно… = .Range(«D(j):X(j)») —————————— потом. + 1, 2)).Clear надо =) мне: Есть задача создания
при поиске не и вставке в смотрите в статье
существует возможность настройки, то в выдачу начнется по новому в макросе пользователя и в выводимых 13 Sheets(1).Cells(ind, x).Value привязано несколько значений If Err ThenHugo121 j=j+2mlm1iLastRow = 4 два варианта верхних поиска по нескольким найдено совпадений, оставить мой лист «заказ» «Поиск в Excel» индивидуального поиска с будут добавляться только
кругу. windows 7. результатах вместо адреса = a(i, x)
из нескольких строк Debug.Print sh.Name &:или как это: Прикрепил файлTextForFind = InputBox(«Введите нравятся листам одной книги.
строки пустыми или появляется ошибка «#ИМЯ?»,
и в перечне большим количеством различных элементы, содержащие точноеВ случае, если приMedvedoc ячейки стало показываться Next End If
Hugo121 «-» & el
Hugo121 можно написать дляЮрий М искомое слово (значение)»,
Юрий М Нужно вводить номер заполнить пунктирами (вместо а в исходнике статей по этой
параметров и дополнительных наименование. Например, если запуске поисковой процедуры: пришлось заархивировать содержимое самой ячейки Next End If: Ещё вариант - & i &
, хотел уточнить…а где excel?: Так? » Запрос для: А кто Вам
телефона, и чтоб нулей)?{/post}{/quote} появляется ошибка «#ЗНАЧ!» теме, расположенном в настроек. вы зададите поисковый вы нажмете наФайл удален(текст) =)
Next Application.ScreenUpdating = макросом ставить стандартный
«-» & t: осуществляется само сравнениеСкорее это вопрос)mlm1 поиска») мешает «убрать» эту открывались все егоМоя по полномуа в вашем конце статьи.Автор: Максим Тютюшев запрос «Николаев», то кнопку- велик размерОстался вопрос как True End Sub фильтр и копировать Err.Clear Next Next значений ячеек?…или возможно..можно ли как: Спасибо так.If TextForFind = жёлтую ячейку? Она данные, на каждом ищет если исходнике всё работает.{/post}{/quote}Поработали — пораРассмотрим, ячейки, содержащие текст«Найти все» — [ сделать так, чтобыHugo121 видимые. Но мне Next End SubВ так как я то задать сменуА можно без «» Then
в моём макросе листе таблица ( не находит пишетвечером было избыточно отдохнуть. )) Акак найти документ «Николаев А. Д.»,
, все результаты выдачиМОДЕРАТОРЫ выводились все результаты
: Чуть исправил код этот способ не коде нужно было понял, объект Collection значение ячейки?…что то
вывода промежуточных результатовMsgBox «Вы ничего не задействована. Значение
1ст поряд.номер, 2- 0.упростил если серьёзно, то,
Excel по содержимому текста в выдачу уже будут представлены в] с заданным значением — теперь вместо нравится… хотя работает добавить Cstr(t), т.к. не может содержать плана:
(окошек) Найдено столько не указали», 48, для поиска выбирается сам номер,3- данные,Alexander_V
CyberForum.ru
Поиск по листам всей книги [ТЕМА ЗАКРЫТА — повторное нарушение]
это пользовательская функция в Excel есть, добавлены не будут. виде списка вЮрий М с одной страницы currentregion обрабатываю usedrange, быстро. тут уже числа. одинаков элементов?j=11 Set rng -то штук на «Вы чё, в по запросу - 4- данные, 5-данные).: Внимательно перечитал пост
нужно в вашу много возможностей, кроме
таблицыПо умолчанию, поиск производится нижней части поискового: Прошлось удалить. =) поэтому в J1LubaxaЧтоб показывало иIf Len(t) Then = .Range(«D(j):X(j)») ——————————
листе 1 и натуре?» Вы не заметили? как это сделать, думал нужно что
книгу скопировать модуль стандартных функций Excel,, например, когда не
только на активном окна. В этомMedvedocMedvedoc можно ничего не
: Поиск по этим с чем совпало col.Add t, t j=j+2 т.д.Exit Sub Кнопку очистки подскажите. бы «0» писало из прикрепленной книги
которые можно применить помним название файла, листе Excel. Но,
списке находятся информация:: нашел макрос другого писать.
таблицам нужен по — нужно вместо If Err Then…простоили как это
Юрий МEnd If тоже можете удалитьAntikBantik оказывается не надо
Alexander_V в своей работе.
документа, папки, т.д. если параметр о содержимом ячеекФайл удален
поисковика. В немНу и добавил столбцам: адрес или коллекции использовать словарь. не могу понять
можно написать для: У меня не
For n = — диапазон будет: был бы файл :): Особо не тестировал
Например, как можноПервый вариант.«Искать» с данными, удовлетворяющими- велик размер с листа отображаются режим отбора по имя/фамилия (в этих Это сейчас писать
з чего бы excel? было — сколько 2 To Sheets.Count очищаться автоматически. может и подсказалив приложении файл
времени нет. Если использовать шрифт дляПоиск документавы переведете в запросу поиска, указан — [
все значения. Как
похожим значениям. случаях идеальный вариант, некогда, попробуйте сами появляться Err…если кHugo121 найдено. Была информация,
With Sheets(n).UsedRangeMedvedoc бы, а так формула возвращает пустое чего пишите. построения графика вExcel по названию папки. позицию их адрес расположения,МОДЕРАТОРЫ можно часть данного
И ещё -
если можно выводить
на примерах сделать. нему нету никакого
: Может так: если НЕ найденоSet iRng =
: в данный момент не зная точной
место (визуально).Alexander_V ячейке, т.д. Такой
Нажимаем кнопку «Пуск»,«В книге» а также лист
] кода перенести в
теперь правее пишется
все близкие по Ну или может условия =
Set rng = на листе. Убрал
.Find(What:=TextForFind, LookIn:=xlFormulas, LookAt:=xlPart)
у меня код
структуры данных вместоPS: Хотя после
: Моя функция тоже способ мы рассмотрели расположенную в левом
, то поиск будет
и книга, кMedvedoc
свой код, чтобы
имя листа, откуда значению результаты) или
кто другой попробуетHugo121
.Range(«D» & j
сообщение.
If Not iRng модуля вот такой
одной попытки для
формул The_Prist-а и пользовательская так что на примере создания нижнем углу монитора. производиться по всем
которым они относятся.: я просто не результаты поиска выводили взята строка. Может SN (номер товара). сделать, из интереса.: Collection содержит уникальные & «:X» &mlm1 Is Nothing ThenOption Explicit получения результата их Лузер™-а как то не забудьте скопировать простой игры. Смотрите В появившемся списке листам открытого файла. Для того, чтобы знаю как макрос все найденные значения пригодится когда…
Т.е. в соответствующуюLubaxa ключи и при j): СпасибоFirstAddress = iRng.AddressSub Поиск() будет N - даже не удобно
модуль статью «Игра в нажимаем на кнопкуВ параметре перейти к любому Windows 7 подправить, с листаHugo121 форму вводится один: Добрый вечерок!
попытке дополнить коллекциюna4ikто что искалDoDim iFoundRng As ое количество. свою выкладывать:).dude Excel». «Этот компьютер» (в«Просматривать» из результатов выдачи, чтобы он выводилСам код: Думаю ещё есть
из этих критериевПомогите, пожалуйста…. Есть с уже имеющимся
: Может так?davaispoemCells(iLastRow + 1, RangeHugo121ytk5kyky: с учетом решенияdendy_81 Word 2013) илиможно изменить направление
достаточно просто кликнуть все найденные значенияPrivate Sub CommandButton1_Click() смысл добавить (максимум 2). Насколько база данных в ключём возникает ошибкаSub search_main() Dim: Здравствуйте! Уважаемые специалисты, 1) = Sheets(n).NameDim iSheet As: C формой нужно
: По хорошему, если Alexander_V все короче
: Здравствуйте. У меня «Мой компьютер» (в поиска. По умолчанию, по нему левой с листа по
Dim MyLeight AsOption Compare Textчтоб
я понимаю. то Excel. Пока использовалась (для продолжения работы sh As Worksheet вновь прошу вашейCells(iLastRow + 1, Worksheet
делать. Но можно ничего не найдено,а автора все такой вопрос. Word 2007). как уже говорилось кнопкой мыши. После запросу
planetaexcel.ru
Integer
На чтение 5 мин Опубликовано 26.01.2021
Листам в книгах Excel можно дать имена, соответствующие содержимому. Из них было бы удобно составить оглавление, но не все знают, как это сделать. Существуют несложные способы сформировать список листов и методы, требующие усилий, например установки сторонних дополнений. С помощью инструментов Excel пользователи также могут подсчитать количество листов в крупной книге. Выясним, как получить оглавление для чтения или перехода к каждому листу, какими формулами для этого нужно воспользоваться.
Содержание
- Список листов с помощью формулы
- Как составить список листов через VBA
- Надстройки для составления списка листов
- Как подсчитать количество листов в книге
Список листов с помощью формулы
Этот способ основан на использовании функции, которую нельзя найти в Менеджере. Она связана с макросами Excel 4.0. Чтобы применить формулу на практике, необходимо пройти дополнительный шаг, редко встречающийся в работе с функциями – зайти в диспетчер имен и добавить туда выражение.
- Переходим на вкладку «Формулы» и кликаем по кнопке «Диспетчер имен». Опция находится в разделе «Определенные имена».
- Нажимаем «Создать» в открывшемся диалоговом окне.
- Записываем новое имя в верхнем поле, выбираем область «Книга» (обычно она установлена по умолчанию) и записываем в графу «Диапазон» эту формулу: =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1; НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)
- После заполнения всех полей жмем «ОК». В книге Excel пока ничего не изменится, но эти шаги помогут в будущем. Окно диспетчера имен можно закрыть.
- Открываем лист, где будет расположен список. Выбираем ячейку и записываем в ней формулу с только что созданным именем: =ИНДЕКС(Список_листов;СТРОКА()). Нажмите Enter, и в ячейке появится название первого листа.
- Необходимо вывести все названия листов в столбец. Для этого зажимаем маркер заполнения, который находится в правом нижнем углу выбранной ячейки, и выделяем нужное количество ячеек. В таблице-примере 4 листа столько и было выделено ячеек.
- Создадим список, из которого можно перейти на каждый лист. Выберите другую пустую ячейку и вставьте эту формулу: =ГИПЕРССЫЛКА(«#»&A1&»!A1″;»»&A1).
Обратите внимание! Ячейка A1 прописывается в формуле, чтобы пользователи могли перейти на конкретную ячейку каждого листа. После нажатия Enter появится кликабельное название листа.
- Полный список с гиперссылками можно создать так же, с помощью маркера заполнения.
- Если название листа изменено, придется перезаполнить списки – для этого нужно просто удалить их, снова вставить те же формулы и выделить ячейки ниже.
Важно! Невозможно сделать ссылку на лист с диаграммой в Excel. На экране появляется сообщение об ошибке, переход не происходит.
Как составить список листов через VBA
Существует другой способ составления списка листов из книги – можно подключить пользовательскую функцию через редактор Visual Basic. Такой метод может показаться сложным, но это не так, если воспользоваться шаблоном для добавления функции в программу.
- Открываем VBA с помощью комбинации клавиш «Alt+F11». Если при нажатии F11 снижается яркость или срабатывает другая функция, установленная на эту кнопку, зажмите клавишу Fn.
- Нажмите «Вставить» (Insert) на верхней панели и выберите в открывшемся меню пункт «Модуль» (Module).
- Вставляем в свободное поле этот текст:
Function SheetList(N As Integer)
SheetList = ActiveWorkbook.Worksheets(N).Name
End Function
- Далее можно закрыть окно Visual Basic, потому что этот инструмент больше не понадобится, а функция уже добавлена в программу.
- Открываем лист для списка и вводим формулу в начальную ячейку. Теперь не нужно длинное выражение, чтобы создать список листов. Новая формула выглядит так: =SheetList(СТРОКА()).
- Нажимаем Enter и получаем название листа в ячейке. Маркером заполнения создаем список.
- Для гиперссылок придется использовать ту же длинную формулу: =ГИПЕРССЫЛКА(«#»&A1&»!A1″;»»&A1).
Надстройки для составления списка листов
Надстройки – это дополнения для Microsoft Excel, которые создаются продвинутыми пользователями. Компания Microsoft рассказывает на официальном сайте о возможности подключить надстройки, но не предлагает скачать дополнения, поэтому обычно их загружают из других источников.
Всегда проверяйте загрузки на вредоносные элементы с помощью антивирусной программы.
Существуют платные и бесплатные надстройки. Сегодня рассмотрим набор дополнений для Excel 2007-2019 под названием «Ёxcel». Разработчик распространяет файл на своем сайте за добровольное пожертвование. Установите надстройку по инструкции – после этого можно приступать к составлению списка.
- Открываем лист, где будет размещен список, и нажимаем левой кнопкой мыши на начальную ячейку будущего перечисления.
- На вкладке надстройки находим кнопку «Листы». Кликаем по ней, чтобы открылось меню, и выбираем пункт «Получить список листов книги». Скриншот создателя надстройки:
- Выбираем, какие листы показать в списке. Для простейшего перечисления названий листов кликаем по пункту «Простой список» и жмем на кнопку с галочкой в левом нижнем углу диалогового окна.
- На экране появится список листов. Если выставить настройки сложнее, то внешний вид списка немного изменится.
Как подсчитать количество листов в книге
Иногда в книгах Excel появляется много листов, например если документ относится к крупному проекту. Выяснить, сколько в файле страниц, можно с помощью функции ЛИСТЫ.
Обратите внимание! Функция работает только в версиях Microsoft Excel от 2013.
- Выбираем пустую ячейку и записываем в ней формулу: =ЛИСТЫ(). Не обязательно заполнять аргумент «Ссылка», если нужно посчитать листы в одной книге.
- Жмем Enter и получаем числовое значение.
Если все листы переименованы, и нужно узнать их номера, воспользуйтесь функцией ЛИСТ. Эта формула также доступна с 2013-й версии. У функции ЛИСТ один аргумент – «Значение». Если аргумент не заполнен, после нажатия клавиши Enter в ячейке появится номер того же листа, где была введена формула. Простое выражение с ЛИСТ выглядит так: =ЛИСТ().
Оцените качество статьи. Нам важно ваше мнение: