Макрос Excel для поиска по всей книге кроме последнего листа |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
в данный момент у меня код модуля вот такой
Option Explicit
Sub Поиск()
Dim iFoundRng As Range
Dim iSheet As Worksheet
Dim iFoundSht As Worksheet
Dim FirstAddress As String
Dim TextToFind As Variant
Dim iLastRow As Long
Dim iShtName As String
Set iFoundSht = Sheets(«Поиск») ‘лист «Поиск» присваиваем переменной
iFoundSht.Range(«A5:AA5000»).Clear ‘очищаем диапазон ячеек на листе Поиск
‘TextToFind = Application.InputBox(«Введите строку для поиска» & Chr(13) & Chr(13) & «Например: Lexus или Lexus 350», «Поиск», «Lexus 350»)
TextToFind = iFoundSht.Range(«B2»)
If TextToFind = «» Or TextToFind = False Then Exit Sub ‘если ничего не ввели — Выход!
TextToFind = Trim(TextToFind) ‘убираем начальные и конечные пробелы
Application.ScreenUpdating = False ‘отключаем обновление экрана
For Each iSheet In ThisWorkbook.Worksheets ‘поиск по листам
If iSheet.Name <> iFoundSht.Name Then
If iSheet.FilterMode = True Then iSheet.ShowAllData ‘если на листе установлен автофильтр, то снимаем его
Set iFoundRng = iSheet.Cells.Find(TextToFind, , xlFormulas, xlPart)
If Not iFoundRng Is Nothing Then ‘если нашли
FirstAddress = iFoundRng.Address ‘запоминаем адрес найденной ячейки, чтобы продолжить поиск по листу
Do
With iFoundSht
iLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row ‘определяем последнюю заполненную строку на листе поиск
If iLastRow = 1 Then iLastRow = 4 ‘если лист пуст, то вставлять будем начиная с 7-й строки
If iShtName <> iSheet.Name Then ‘если новый прайс-лист
With .Cells(iLastRow + 1, 1) ‘проставляем имя листа
.Value = «Лист: » & iSheet.Name & » Ячейка: » & iFoundRng.Address(0, 0)
‘добавляем гиперссылку
iFoundSht.Hyperlinks.Add Anchor:=iFoundSht.Cells(iLastRow + 1, 1), Address:=»», _
SubAddress:=»‘» & iSheet.Name & «‘» & «!» & iFoundRng.Address, ScreenTip:=»Перейти на лист » & iSheet.Name
‘.Font.Bold = True ‘выделяем жирным
End With
End If
‘iFoundRng.EntireRow.Copy Destination:=.Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1) ‘копируем всю строку
iShtName = iSheet.Name ‘запоминаем имя листа
End With
Set iFoundRng = iSheet.Cells.FindNext(iFoundRng) ‘продолжаем поиск на том же листе
Loop While iFoundRng.Address <> FirstAddress
End If
End If
Next iSheet
Application.ScreenUpdating = True ‘включаем обновление экрана
MsgBox «Поиск завершён!», 64, «Поиск»
End Sub
Sub Finder()
Dim iRng As Range, TextForFind As String, FirstAddress As String, n As Integer, iLastRow As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(5, 1), Cells(iLastRow + 1, 2)).Clear
iLastRow = 4
TextForFind = InputBox(«Введите искомое слово (значение)», » Запрос для поиска»)
If TextForFind = «» Then
MsgBox «Вы ничего не указали», 48, «Вы чё, в натуре?»
Exit Sub
End If
For n = 2 To Sheets.Count
With Sheets(n).UsedRange
Set iRng = .Find(What:=TextForFind, LookIn:=xlFormulas, LookAt:=xlPart)
If Not iRng Is Nothing Then
FirstAddress = iRng.Address
Do
Cells(iLastRow + 1, 1) = Sheets(n).Name
Cells(iLastRow + 1, 2) = iRng.Address(0, 0)
iLastRow = iLastRow + 1
Set iRng = .FindNext(iRng)
Loop While iRng.Address <> FirstAddress
Else
MsgBox «Значение » & TextForFind & » не найдено!», 48, «Ошибка»
End If
End With
Next
End Sub
по вашим словам я могу оставить только последнюю часть данного кода?
- Надстройки Excel
- Поиск в Excel
- Панель инструментов
- Книги Excel
- текстовые строки
- Форма ввода
Наверняка, вы сталкивались с ситуацией, когда необходимо производить поиск некоторого значения по всей книге Excel (искать частичное совпадение на всех листах активной книги)
Штатными средствами Excel вывести поле для поиска на панель инструментов не удаётся, а вызывать каждый раз диалоговое окно нажатием комбинации клавиш Ctrl + F не всегда удобно.
На помощь придёт эта надстройка — она формирует в строке меню Excel 2003 поле для поиска по всем листам:
Достаточно ввести искомый текст, и нажать клавишу Enter, — и перед вами полный список всех подходящих ячеек со всех листов книги.
Для перехода к найденной ячейке достаточно щелкнуть мышью на нужном результате — автоматически будет активирован нужный лист, и выделена искомая ячейка.
Поместите эту надстройку в папку автозагрузки Excel — и это поле будет появляться при каждом запуске программы.
Конечно, функциональность этой надстройки присутствует и в Excel, — если в настройках поиска выбрать опцию «Искать в книге»:
Моя же надстройка чуть упрощает работу — не надо нажимать лишние кнопки для типа Ctrl + F, и не надо выбирать область поиска.
К тому же, при использовании надстройки, вы можете провести мышом (при нажатой левой кнопке) по результатам поиска, — и Excel пролистает (выделит) все найденные ячейки по очереди (во встроенном поиске Excel надо щелкать на каждом результате отдельно)
(добавлено 29.07.2011) Немного подправил код надстройки:
- теперь форма с результатами закрывается по нажатию Esc
- при отсутствии открытой книги не выводится пустая форма
- панель инструментов не сбрасывается к настройкам «по-умолчанию» перед добавлением поля
- 200822 просмотра
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
[file placeholder]
Downloadable Files:
Excel File
Sign-in to download the file.
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
View Course
Similar Content on TeachExcel
Subscribe for Weekly Tutorials
BONUS: subscribe now to download our Top Tutorials Ebook!
Tutorial Details
Downloadable Files:
Excel File
Sign-in to download the file.
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Video
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
View Course
Как всегда искать по всей книге?
В Excel, когда вы применяете функцию «Найти и заменить», он по умолчанию будет искать на текущем листе, если вы всегда хотите искать на всех листах, вам нужно изменить Простыня в Workbook под Опция в Найти и заменить диалог при включении книги каждый раз. Как можно настроить поиск по всей книге вместо активного листа по умолчанию?
Всегда искать по всей книге с кодом VBA
Всегда выполнять поиск по всей книге с помощью Kutools for Excel
Всегда искать по всей книге с кодом VBA
Фактически, у нас нет прямого способа изменить область поиска на всю книгу по умолчанию в Excel, но вы можете применить следующий код VBA в качестве обходного пути. С помощью этого кода вам не нужно изменять область поиска каждый раз, когда вы обедаете эту книгу.
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.
Код VBA: всегда искать по всей книге:
Sub FindReplace_WB()
'Updateby Extendoffice
Dim ws As Worksheet
Dim xFind As String
Dim xRep As String
Application.ScreenUpdating = False
On Error Resume Next
xFind = Application.InputBox("Find what", "Kutools for Excel", "", , , , , 2)
xRep = Application.InputBox("Replace with", "Kutools for Excel", "", , , , , 2)
If xFind = "" Then
MsgBox "wrong...", vbInformation, "Kutools for Excel"
Exit Sub
End If
For Each ws In ThisWorkbook.Worksheets
ws.UsedRange.Replace What:=xFind, Replacement:=xRep, LookAt:=xlWhole
Next ws
On Error GoTo 0
Application.ScreenUpdating = True
End Sub
3, Затем нажмите F5 нажмите клавишу для запуска этого кода, и в появившихся диалоговых окнах введите текстовые значения в поля «Найти» и «Заменить на» отдельно, см. снимок экрана:
4, Затем нажмите OK, все значения во всей книге, которую вы хотите, были заменены необходимыми значениями.
5. Сохраните книгу как Excel Macro-Enabled Workbook формат, и в следующий раз, когда вы откроете эту книгу, вы всегда сможете применить этот код для поиска во всей книге.
Всегда выполнять поиск по всей книге с помощью Kutools for Excel
Если у вас есть Kutools for Excel, С его Область переходов утилиту, вы всегда можете найти и заменить на листе, всей книге или нескольких открытых книгах по мере необходимости.
После установки Kutools for Excel, пожалуйста, сделайте следующее:
1. Нажмите Кутулс > Навигация, см. снимок экрана:
2. В Навигация панели, нажмите кнопку, чтобы перейти к Параметры навигации, в центре параметров укажите необходимый объем по умолчанию в поле Найти и заменить раздел, в этом случае я выберу Активная рабочая тетрадь, см. снимок экрана:
3. Затем нажмите OK кнопку, закройте и снова откройте книгу, чтобы применить эффект настройки, а теперь перейдите к Навигация панель и щелкните для активации Найти и заменить функция. в Найти и заменить панели, выполните следующие операции:
(1.) Под В вы можете видеть, что область действия по умолчанию была изменена на Активная рабочая тетрадь;
(2.) Под Замените на вкладке введите текст, который хотите найти и заменить отдельно, в поле Найти то, что и Заменить текстовое окно;
(3.) Затем щелкните Заменить все кнопку, чтобы заменить текст в активной книге, которая вам нужна.
Нажмите Скачать бесплатно Kutools for Excel от Yhao сейчас!
4. С этого момента, когда вы открываете любую книгу и применяете это Найти и заменить Утилита Kutools, область поиска по умолчанию является активной книгой.
Более 300 функций могут сделать вашу работу более эффективной, вы можете скачать Kutools for Excel на бесплатную трассу.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!