Excel поиск папок в папке

Макрос VBA загрузки списка файлов из папки

Функция FilenamesCollection предназначена для получения списка файлов из папки, с учётом выбранной глубины поиска в подпапках.

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

К статье прикреплено 2 примера файла с макросами на основе этой функции:

  • Пример в файле FilenamesCollection.xls выводит список файлов на чистый лист новой книги (формируя заголовки) 
  • Пример в файле FilenamesCollectionEx.xls более функционален — он, помимо списка файлов из папки, отображает размер файла, и дату его создания, а также формирует в ячейках гиперссылки на найденные файлы.
    Вывод списка производится на лист запуска, параметры поиска файлов задаются в ячейках листа (см. скриншот)

Смотрите также расширенную версию макроса на базе этой функции:

Макрос FolderStructure выводит в таблицу Excel список файлов и подпапок с отображением структуры (вложенности файлов и подпапок)

ПРИМЕЧАНИЕ: Если вы выводите на лист список имен файлов картинок (изображений), то при помощи этой надстройки вы сможете вставить сами картинки в ячейки соседнего столбца (или в примечания к этим ячейкам)

Внимание: если требуется, чтобы поиск не зависел от регистра символов в маске файла
(к примеру, обнаруживались не только файлы .txt, но и .TXT и .Txt),
поставьте первой строкой в модуле директиву Option Compare Text

Function FilenamesCollection(ByVal FolderPath As String, Optional ByVal Mask As String = "", _
                             Optional ByVal SearchDeep As Long = 999) As Collection
    ' © EducatedFool  excelvba.ru/code/FilenamesCollection
    ' Получает в качестве параметра путь к папке FolderPath,
    ' маску имени искомых файлов Mask (будут отобраны только файлы с такой маской/расширением)
    ' и глубину поиска SearchDeep в подпапках (если SearchDeep=1, то подпапки не просматриваются).
    ' Возвращает коллекцию, содержащую полные пути найденных файлов
    ' (применяется рекурсивный вызов процедуры GetAllFileNamesUsingFSO)

    Set FilenamesCollection = New Collection    ' создаём пустую коллекцию
    Set FSO = CreateObject("Scripting.FileSystemObject")    ' создаём экземпляр FileSystemObject
    GetAllFileNamesUsingFSO FolderPath, Mask, FSO, FilenamesCollection, SearchDeep ' поиск
    Set FSO = Nothing: Application.StatusBar = False    ' очистка строки состояния Excel
End Function
 
Function GetAllFileNamesUsingFSO(ByVal FolderPath As String, ByVal Mask As String, ByRef FSO, _
                                 ByRef FileNamesColl As Collection, ByVal SearchDeep As Long)
    ' перебирает все файлы и подпапки в папке FolderPath, используя объект FSO
    ' перебор папок осуществляется в том случае, если SearchDeep > 1
    ' добавляет пути найденных файлов в коллекцию FileNamesColl
    On Error Resume Next: Set curfold = FSO.GetFolder(FolderPath)
    If Not curfold Is Nothing Then    ' если удалось получить доступ к папке

        ' раскомментируйте эту строку для вывода пути к просматриваемой
        ' в текущий момент папке в строку состояния Excel
        ' Application.StatusBar = "Поиск в папке: " & FolderPath

        For Each fil In curfold.Files    ' перебираем все файлы в папке FolderPath
            If fil.Name Like "*" & Mask Then FileNamesColl.Add fil.Path
        Next
        SearchDeep = SearchDeep - 1    ' уменьшаем глубину поиска в подпапках
        If SearchDeep Then    ' если надо искать глубже
            For Each sfol In curfold.SubFolders    ' перебираем все подпапки в папке FolderPath
                GetAllFileNamesUsingFSO sfol.Path, Mask, FSO, FileNamesColl, SearchDeep
            Next
        End If
        Set fil = Nothing: Set curfold = Nothing    ' очищаем переменные
    End If
End Function

‘ Пример использования функции в макросе:

Sub ОбработкаФайловИзПапки()
    On Error Resume Next
    Dim folder$, coll As Collection
 
    folder$ = ThisWorkbook.Path & "Платежи"
    If Dir(folder$, vbDirectory) = "" Then
        MsgBox "Не найдена папка «" & folder$ & "»", vbCritical, "Нет папки ПЛАТЕЖИ"
        Exit Sub        ' выход, если папка не найдена
    End If
 
    Set coll = FilenamesCollection(folder$, "*.xls")        ' получаем список файлов XLS из папки
    If coll.Count = 0 Then
        MsgBox "В папке «" & Split(folder$, "")(UBound(Split(folder$, "")) - 1) & "» нет ни одного подходящего файла!", _
               vbCritical, "Файлы для обработки не найдены"
        Exit Sub        ' выход, если нет файлов
    End If
 
    ' перебираем все найденные файлы
    For Each file In coll
        Debug.Print file        ' выводим имя файла в окно Immediate
    Next
End Sub

Этот код позволяет осуществить поиск нужных файлов в выбранной папке (включая подпапки), и выводит полученный список файлов на лист книги Excel:

Sub ПримерИспользованияФункции_FilenamesCollection()
    ' Ищем на рабочем столе все файлы TXT, и выводим на лист список их имён.
    ' Просматриваются папки с глубиной вложения не более трёх.

    Dim coll As Collection, ПутьКПапке As String
    ' получаем путь к папке РАБОЧИЙ СТОЛ
    ПутьКПапке = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    ' считываем в колекцию coll нужные имена файлов
    Set coll = FilenamesCollection(ПутьКПапке, ".txt", 3)
 
    Application.ScreenUpdating = False    ' отключаем обновление экрана
    ' создаём новую книгу
    Dim sh As Worksheet: Set sh = Workbooks.Add.Worksheets(1)
    ' формируем заголовки таблицы
    With sh.Range("a1").Resize(, 3)
        .Value = Array("№", "Имя файла", "Полный путь")
        .Font.Bold = True: .Interior.ColorIndex = 17
    End With
 
    ' выводим результаты на лист
    For i = 1 To coll.Count ' перебираем все элементы коллекции, содержащей пути к файлам
        sh.Range("a" & sh.Rows.Count).End(xlUp).Offset(1).Resize(, 3).Value = _
        Array(i, Dir(coll(i)), coll(i))    ' выводим на лист очередную строку
        DoEvents    ' временно передаём управление ОС
    Next
    sh.Range("a:c").EntireColumn.AutoFit    ' автоподбор ширины столбцов
    [a2].Activate: ActiveWindow.FreezePanes = True ' закрепляем первую строку листа
End Sub

Ещё один пример использования:

Sub ЗагрузкаСпискаФайлов()
    ' Ищем файлы в заданной папке по заданной маске,
    ' и выводим на лист список их параметров.
    ' Просматриваются папки с заданной глубиной вложения.

    Dim coll As Collection, ПутьКПапке$, МаскаПоиска$, ГлубинаПоиска%
 
    ПутьКПапке$ = [c1]    ' берём из ячейки c1
    МаскаПоиска$ = [c2]    ' берём из ячейки c2
    ГлубинаПоиска% = Val([c3])    ' берём из ячейки c3
    If ГлубинаПоиска% = 0 Then ГлубинаПоиска% = 999    ' без ограничения по глубине

    ' считываем в колекцию coll нужные имена файлов
    Set coll = FilenamesCollection(ПутьКПапке$, МаскаПоиска$, ГлубинаПоиска%)
 
    Application.ScreenUpdating = False    ' отключаем обновление экрана

    ' выводим результаты (список файлов, и их характеристик) на лист
    For i = 1 To coll.Count    ' перебираем все элементы коллекции, содержащей пути к файлам

        НомерФайла = i
        ПутьКФайлу = coll(i)
        ИмяФайла = Dir(ПутьКФайлу)
        ДатаСоздания = FileDateTime(ПутьКФайлу)
        РазмерФайла = FileLen(ПутьКФайлу)
 
        ' выводим на лист очередную строку
        Range("a" & Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value = _
        Array(НомерФайла, ИмяФайла, ПутьКФайлу, ДатаСоздания, РазмерФайла)
 
        ' если нужна гиперссылка на файл во втором столбце
        ActiveSheet.Hyperlinks.Add Range("b" & Rows.Count).End(xlUp), ПутьКФайлу, "", _
                                   "Открыть файл" & vbNewLine & ИмяФайла
 
        DoEvents    ' временно передаём управление ОС
    Next
End Sub

PS: Найти подходящие имена файлов в коллекции можно при помощи следующей функции:

Function CollectionAutofilter(ByRef coll As Collection, ByVal filter$) As Collection
    ' Функция перебирает все элементы коллекции coll,
    ' оставляя лишь те, которые соответствуют маске filter$ (например, filter$="*некий текст*")
    ' Возвращает коллекцию, содержащую только подходящие элементы
    ' Если элементы не найдены - возвращается пустая коллекция (содержащая 0 элементов)
    On Error Resume Next: Set CollectionAutofilter = New Collection
    For Each Item In coll
        If Item Like filter$ Then CollectionAutofilter.Add Item
    Next
End Function
  • 301691 просмотр

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

Содержание

  1. Практическое руководство. Поиск подкаталогов по шаблону в Visual Basic
  2. Поиск подкаталогов по заданному шаблону
  3. Отказоустойчивость
  4. Получение списка файлов в папке и подпапках средствами VBA
  5. Смотрите также расширенную версию макроса на базе этой функции:
  6. Комментарии
  7. Как реализовать поиск по Excel, чтобы искал во всех вложенных папках(подпапках)?
  8. 1 ответ 1
  9. Похожие
  10. Подписаться на ленту

Практическое руководство. Поиск подкаталогов по шаблону в Visual Basic

Метод GetDirectories возвращает доступную только для чтения коллекцию строк, представляющих имена путей к подкаталогам каталога. Для указания определенного шаблона можно использовать параметр wildCards . Если требуется включить в поиск содержимое подкаталогов, присвойте параметру searchType значение SearchOption.SearchAllSubDirectories .

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

Поиск подкаталогов по заданному шаблону

Используйте метод GetDirectories , указав имя и путь к каталогу для поиска. В следующем примере возвращаются все каталоги в структуре каталогов, имена которых содержат слово «Logs». Затем они добавляются в ListBox1 .

Отказоустойчивость

При следующих условиях возможно возникновение исключения:

Путь недопустим по одной из следующих причин: это строка нулевой длины, она содержит только пробелы, содержит недопустимые символы или путь к устройству (начинается с \.) (ArgumentException).

Путь не является допустимым, поскольку он равен Nothing (ArgumentNullException).

Один или несколько указанных подстановочных знаков являются Nothing , пустой строкой или содержат только пробелы (ArgumentNullException).

directory указывает на существующий файл (IOException).

Длина пути превышает максимальную длину, определенную в системе (PathTooLongException).

Имя файла или папки в пути содержит двоеточие (:) или имеет недопустимый формат (NotSupportedException).

У пользователя отсутствуют необходимые разрешения на просмотр пути (SecurityException).

У пользователя отсутствуют необходимые разрешения (UnauthorizedAccessException).

Источник

Получение списка файлов в папке и подпапках средствами VBA

Функция FilenamesCollection предназначена для получения списка файлов из папки, с учётом выбранной глубины поиска в подпапках.

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

К статье прикреплено 2 примера файла с макросами на основе этой функции:

  • Пример в файле FilenamesCollection.xls выводит список файлов на чистый лист новой книги (формируя заголовки)
  • Пример в файле FilenamesCollectionEx.xls более функционален — он, помимо списка файлов из папки, отображает размер файла, и дату его создания, а также формирует в ячейках гиперссылки на найденные файлы.
    Вывод списка производится на лист запуска, параметры поиска файлов задаются в ячейках листа (см. скриншот)

Смотрите также расширенную версию макроса на базе этой функции:

Макрос FolderStructure выводит в таблицу Excel список файлов и подпапок с отображением структуры (вложенности файлов и подпапок)

ПРИМЕЧАНИЕ: Если вы выводите на лист список имен файлов картинок (изображений), то при помощи этой надстройки вы сможете вставить сами картинки в ячейки соседнего столбца (или в примечания к этим ячейкам)

‘ Пример использования функции в макросе:

Этот код позволяет осуществить поиск нужных файлов в выбранной папке (включая подпапки), и выводит полученный список файлов на лист книги Excel:

Ещё один пример использования:

PS: Найти подходящие имена файлов в коллекции можно при помощи следующей функции:

Комментарии

Не знаю что там за проблема с некорректными именами файлов, — я этот код использовал в сотнях макросов, эта функция работает в составе моих надстроек на десятках тысяч компьютеров, и никаких проблем не наблюдается.
И ни разу я не применял имена MS DOS..

Игорь, спасибо за рабочий пример (немного докрутил и использую в работе).
Что касается вопроса с некорректными именами файлов (которые не любит обрабатывать сей код (например, если в имени есть символ из непонятной кодировки)), выход нашел немного «топорный»: внутри обработки применяю имена MS DOS, которые обрабатываются нормально в большинстве случаев, а в интерфейсе делаю подмену имен на виндовые. Возможно не совсем понятно написал, но примера сейчас нет под рукой.

Спасибо автору, хороший код для поиска файлов, но возникает вопрос, а можно отключить отображение поиска внизу экселя?

Добрый день, а есть возможность применить свой макрос к полученному списку файлов?

Александр, нет таких полей у файлов произвольного формата, — потому, никак.

Посоветуйте пожалуйста как с помощью FSO получить доступ к полям Теги и Комментарии. Спасибо Alexander A. Rylov

Михаил, найдите в верхней части кода строку Option Explicit
и удалите её (эта строка требует объявлять переменные)

Подскажите. Почему excel может ругаться на
Set FSO = CreateObject(«Scripting.FileSystemObject») ‘ создаём экземпляр FileSystemObject
Пишет что переменная не объявлена/не определена

Нужно выше дописать
Dim FSO As Object?
Или в настройках excel 2016 что-то не так? Притом ругается на все не объявленные переменные.
А переменные типа Filename$ вообще не воспринимает как переменные. В чем может быть дело?
Гуглинг пока не помог.

Здравствуйте.
DoEvents никак не влияет на правильность работы (и не может повлиять)
А количество активных гиперссылок на листе Excel ограничено, — никак не сделать, чтобы на одном листе было более 50 или 65 тысяч АКТИВНЫХ гиперссылок.

Доброго времени суток. Огромное спасибо за программу!

Добавлю от себя и задам вопрос.

При использовании «DoEvents» программа может не правильно работать, в том числе выводить не все значения. Я ее закомментировал.

При привышении 65532 строк гиперссылки прекращают формироваться. Как можно победить?

Здравствуйте.
Под заказ что угодно могу сделать (платно)

Здравствуйте. Для примера из файла «FilenamesCollectionEx.xls» — можете сделать, чтобы выводимый на лист Excel список файлов был отсортирован по размеру(по уменьшению)?

Здравствуйте.
Могу сделать под заказ
Оформляйте заказ на сайте, и обязательно прикрепляйте пример файла с примером результата.

Здравствуйте! Меня тоже интересует макрос по поиску файлов. Можете сделать так что бы в ячейках к примеру A1 задать имя файла, A2 задать тип файла и A3 путь к папке?

Огромное Вам спасибо! Столько времени мне съэкономили.
СПА-СИ-БО! 🙂

Спасибо. Очень полезная вещь!

Здравствуйте, Юрий
Да, это можно исправить, — другой код нужен
(встроенные в VBA функции иногда дают ошибки)

Добрый день
В случае если в именах файлов встречаются нестандартные символы (допустимые в Win) макрос выдает ошибку
Ошибка в строке ДатаСоздания = FileDateTime(ПутьКФайлу)
Можно добавить onError Resume Next но это пропуск ошибки будет а размер файла не будет определен. Есть ли варианты сделать определение размера файлов и для таких файлов тоже?

Пример папки на которой сканирование папки «спотыкается»: https://bit.ly/2zz8Tfw

Игорь, подскажите, а можно ли в файл FilenamesCollectionEx.xls добавить маску имени подпапки, в которой производить поиск? Ситуация: файл с одинаковм именем может лежать в подпапках с разными именами. Я точно знаю, что нужная мне версия должна лежать в определенной подпапке. И проверять таким образом только их?

Так вроде и то и другое выводится
Код открыт ведь, — поменяйте как вам надо, если лишний столбец мешает.

Возможно я слепой или плохо читаю, но я не увидел что-то подобное в коментах. Поэтому мой вопрос следующий: можно как-то сделать так, чтобы выводило только название файла а не весь путь?

Отбой, разобрался. Виноват оказался не этот макрос, а тот, который его результаты использовал. Мораль — люди, не юзайте Dir, если вам нужно что-то сделать с папкой, к которой он обращается.

В моём макросе нет MoveFolder — так что мой макрос точно не виноват в вашей проблеме.
Проблема — либо в неверном использовании MoveFolder (не то или не туда перемещаете), либо нет прав доступа на перемещение в заданное место.

Игорь, всё это прекрасно. Непонятно только, что нужно сделать с Вашим макросом, чтобы после его вызова с папкой можно было бы ещё и что-нибудь сделать, например, переместить. Сейчас после вызова FSO.MoveFolder вылетает с ошибкой Access denied. Проверено, виноват именно Ваш макрос — если закомментировать ТОЛЬКО его вызов, FSO.MoveFolder отрабатывает нормально.

Спасибо, ОГРОМНОЕ.
Выручайте ребята! макрос в целом отличный, но для моих целе нужно немного переделать.
Нужно чтоб все файлы находящиеся в каждой папке были в одной ячейке через разделитель ( | )
Например:
C:images4-20161032g.jpg|C:images4-20161033g.jpg|C:images4-20161033g.jpg

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

Добрый день!
Скажите, пожалуйста, сделали ли вы макрос для Александра?
Если да, то за сколько его можно приобрести?
Если нет, то какие сроки выполнения?
Спасибо!

Напишите на почту стоимость и сроки выполнения

Александр, в этом случае нужен более сложный макрос.
Могу сделать под заказ.

Здравствуйте, Макрос хороший. Всё отлично выводит. Но как сделать дерево? Имеется несколько папок, далее нажимаешь на папку или плюс или еще что-то, она открывается, появляется подпапки, опять жмешь на подпапку появляются подпапки и т.д.

Спасибо, отличный макрос

В ответ на:
Андрей, 15 Мар 2018 — 15:13.#3
Добрый день.
файл 148 знаков (рус.буквы) не обрабатывается,
и сам файл на сервере (если файл на раб.столе то все работает)
какая максимальная длина имени и можно-ли ее обойти.

Ограничение на полное имя файла, включая расширение — 259 символов. Соответственно, все файлы, имеющие более длинное имя при выполнении
Set curfold = FSO.GetFolder(FolderPath)
будут проигнорированы. Тестировал на EX2010, W7 и MSServer 2008. У меня из 28 (curfold.Соunt) файлов реально в коллекции только 15 (curfold.items(1). curfold.items(15))

А как сделать макрос чтобы он мне показал только пустые папки?

Ограничений по длине имени файла, вроде как, нет (по крайней мере, за много лет использования этого кода на тысячах компов, с проблемами не сталкивался)

Добрый день.
файл 148 знаков (рус.буквы) не обрабатывается,
и сам файл на сервере (если файл на раб.столе то все работает)
какая максимальная длина имени и можно-ли ее обойти.

Адаптировал к access — все работает, спасибо, очень помогло

Ринат, посмотрите макрос обработки файлов из папки.
Там выводится диалоговое окно папки, и обрабатываются все файлы в ней (независимо от имён файлов)

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

Большое спасибо автору! Список использую для каталогизации архива сканов документов.

Да, можем сделать такой макрос под заказ.
Минимальная стоимость заказа 1500 руб.

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

или например на основе Вашего FilenamesCollectionEx.xls нашел все файлы на диске/папке нужные -нажимаешь на файл и ты нужен выбрать ячейку куда вписать имя файла
заранее спасибо

У меня почему-то размер файла в байтах выводится абсолютно иной, иногда даже с отрицательным значением.
Пример:
1.вес файла 3 840 327 Кб или 3,66 Гб, а таблица выдает «-362 472 675»
2.вес файла 5 082 087 Кб или 4,84 Гб, таблица выдает «909 089 137»

Василий, да, можно добавить.
Пример код можете здесь посмотреть:
http://excelvba.ru/code/MCI

Добрый день! Подскажите, возможно ли добавить столбцы «продолжительность» и «ширина кадра», которые имеются в данных файлов?

Здравствуйте, Елизавета.
Причин может быть несколько, навскидку:
— проблемный файл, или файл, к которому у вас нет доступа (ошибка 53 — файл не найден)
— слишком длинное имя папки (много уровней вложенности) и/или файла
— сбой в файловой системе
— ошибка в макросе (что-то в коде не учтено)

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

Игорь, огромное вам спасибо за эту работу!
Несколько лет использую ваш файл для классификации фильмов, но пару недель назад почему-то он перестал работать. Никакой критичности в этом нет, т.к. главное исправила благодаря обсуждениям тут, но мне непонятно и жутко интересно, почему так происходит. Может, это связано с активацией офиса(примерно в то же время было)? Офис 10й.
У меня 2 вкладки в этом файле, обновляю список на 2й, и затем новые позиции копирую в первую (накапливаю). При обновлении списка, после 60-70 позиций, макрос останавливается и сообщает об ошибке Run-time error 53 со сслыкой на строку ДатаСоздания = FileDateTime(ПутьКФайлу). Дело не файле, т.к. его удаление не помогло. Я добавила в скрипт «On Error Resume Next», список обновляется до конца, но перестают запускаться фильмы по гиперссылке в 1й вкладке «не удается открыть указанный файл» (во 2й работают), хотя файл и макросы одни и те же. Знаете, в чем может быть причина?

Источник

Как реализовать поиск по Excel, чтобы искал во всех вложенных папках(подпапках)?

Имеется рабочий код поиска по множеству Excel-файлов, с выводом полного адреса в виде списка гиперссылок. Как реализовать поиск не только в одном уровне, но и во ВСЕХ вложенных подпапках, с возможностью либо отключения глубокого поиска, либо предупреждения что он включен(думается можно намертво повесить компьютер если выбрать слишком большой объём).

1 ответ 1

Нашлось в бардачке 🙂

К сожалению, имя автора не сохранилось.

Задействуется FSO (FileSystemObject). Создается коллекция имен всех найденных вложенных папок.

FolderPath — путь к исходной папке. Глубина поиска задается переменной SearchDeep. Созданный список папок можно посмотреть в Immediate Window.

С помощью Application.FileDialog задать исходную папку и использовать коллекцию перед строкой

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.17.43323

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

 

Добрый вечер, Господа.    

  Передо мной стоит такая задача:  
В файл excel скопировать определенные данные из разных файлов. Ничего нового? 100 раз обсуждалось? Да, вы правы. И это я, пожалуй, смогу реализовать средствами VBA.  

  Проблема в том, что файлы, в которых находятся вожделенные данные очень хитро зарыты и разбросаны по разным папкам и подпапкам.    

    Привожу пример систематизации и, собственно, той задачи, в которой нужна ваша помощь:  
Пользователь в файле excel, который лежит на диске там, где пользователю хочется, нажимает кнопку и через проводник указывает папку, в которой будет проводиться поиск. Скажем, пользователь хочет осуществить поиск в папке с именем «Основная папка»  
Далее автоматически происходит следующий поиск в «Основной папке»:  
1 — ищем папки, названия которых начинаются со слова «Заказ» (это может быть папка с именем «Заказ-1», «Заказ мой», «Заказ»). Все, что не удовлетворяет этим требованиям, пропускаем.  
2 — В каждой папке, удовлетворяющей критерию «Заказ» ищем подпапку с именем «Нужная папка» (полное совпадение).  
3 — Если такая папка найдена, открываем ее и ищем файл excel, название которого заканчивается словом  «order» ИЛИ «orders» (т.е. название нужного файла может быть, например «Мой order» или «123 orders» или «new order»)  
4 — если файл найден, открываем его.    
5 — ну, а как дальше сориентироваться в самом файле и скопировать из него данные, это я знаю.    
Т.о. перебираются все папки по указанным выше критериям и копируются данные…..  

  Помогите, пож-ста, с реализацией пунктов 1 — 4. Не знаю, как это реализовать…    
Во вложении все эти папки и подпапки и еще подпапки, просто для визуализации процесса…    
Благодарю за помощь!

Поиск файлов в папке и её подпапках

Alex_ST

Дата: Пятница, 22.06.2012, 15:31 |
Сообщение № 1

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Выводится список файлов, найденных в заданной папке.
Можно задавать глубину «погружения» в подпапки и маску имён файлов
В ячейки столбцов для каждого из найденных файлов выводятся:
— имя файла — гиперссылка на файл
— полный или сокращённый (от заданной папки) путь к файлу
— дата и время создания файла
— размер файла
— дата и время модификации файла
Прицеплен «Удобный автофильтр», позволяющий легко фильтровать полученные данные.



С уважением,
Алексей
MS Excel 2003 — the best!!!

Сообщение отредактировал Alex_STПятница, 22.06.2012, 20:45

 

Ответить

Alex_ST

Дата: Пятница, 22.06.2012, 21:59 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

К стати, кто подскажет, где я нахомутал (просто, наверное, глаз замылился)?
Заметил при тестировании два мелких косяка:
1. Значение чек-бокса SheetFind.CheckBox_ShortPath при открытии файла сохраняется таким, каким оно было при сохранении перед закрытием. А вот переменная ShortPath, которую я пытаюсь по нему выставить в процедурах обработки событий Workbook_Open, Worksheet_Activate, Worksheet_Activate ставиться не хочет. Поэтому перед первым поиском приходится чекнуть бокс туда-обратно чтобы результат ему соответствовал.
2. В процедуре [vba]

Code

Sub ОчисткаСписка()
     On Error Resume Next
     If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData   ‘ сбросить фильтры
     Intersect(Rows(«6:» & Rows.Count), ActiveSheet.UsedRange).ClearContents   ‘ удалить содержимое
     Intersect(Rows(«7:» & Rows.Count), ActiveSheet.UsedRange).Rows.Delete Shift:=xlUp   ‘ сократить UsedRange
     ActiveSheet.Cells(1, 1).End(xlDown).Offset(1).Select   ‘  сдвинуть экран к последней заполненной ячейке
End Sub

[/vba]после удаления строк UsedRange чистится не сразу (видно по размеру «бегунка» прокрутки строк), а только по второму нажатию.



С уважением,
Алексей
MS Excel 2003 — the best!!!

Сообщение отредактировал Alex_STПятница, 22.06.2012, 22:01

 

Ответить

Alex_ST

Дата: Среда, 27.06.2012, 13:41 |
Сообщение № 3

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Полирнул код и «продвинул» (расширил и углУбил) интерфейс:
— добавлен лист с избранными путями поиска и возможность выбора пути из их списка
— пути поиска при их добавлении по кнопке «Добавить в Избранные» унифицируются и сортируются автоматически.
— для ускорения процедуры и удобства работы с результатами (чтобы при выделении случайно не кликнуть на ссылку) гиперссылки теперь не ставятся по умолчанию, а есть кнопка для из установки/удаления
— по даблклику по имени файла теперь можно открыть файл, по полному пути — открыть папку
— кнопки теперь «интерактивные»
— и что-то ещё (не помню)

Прошу прощения. Обнаружил ошибку cry
Файл отсюда удаляю. Исправленный файл — в следующем посте.



С уважением,
Алексей
MS Excel 2003 — the best!!!

Сообщение отредактировал Alex_STЧетверг, 28.06.2012, 12:11

 

Ответить

Alex_ST

Дата: Четверг, 28.06.2012, 12:15 |
Сообщение № 4

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Ещё раз прошу прощения за допущенную в предыдущем посте ошибку в процедуре.
Кроме того, наткнулся на недокументированное ограничение Excel: гиперссылок на листе может быть не более 65530 штук.
Просканировал у себя Programm Files и при попытке расставить гиперссылки вылетел в отладку sad
Ошибку исправил. Ограничение учёл.



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

adaebella

Дата: Пятница, 26.10.2012, 22:49 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


здраствуйте Alex ST . мне очень нужна ваша помощь в екселе . пожалоста ответь мне или здесь или прямо в скайп : ruslan4963 . зарание спасибо и буду ждать своево ответа. с уважениям Русан

 

Ответить

KuklP

Дата: Пятница, 26.10.2012, 23:52 |
Сообщение № 6

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

adaebella, для таких сообщений есть кнопка «Приват».


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

Alex_ST

Дата: Понедельник, 29.10.2012, 09:42 |
Сообщение № 7

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Quote (adaebella)

буду ждать своево ответа

Ждите ответа, ждите ответа, ждите ответа, ждите ответа, ждите ответа… biggrin

А вообще, правильно написал Сергей: личные вопросы — в личной почте. А если вопрос по теме, то спрашивайте здесь.
Но сразу предупреждаю: дистанционным обучением VBA я не занимаюсь и за деньги писать программы не собираюсь, т.к. Excel-2003 — моё хобби, а не источник дохода.
А по Скайпу я не общаюсь ни с кем кроме своих друзей.



С уважением,
Алексей
MS Excel 2003 — the best!!!

Сообщение отредактировал Alex_STПонедельник, 29.10.2012, 09:44

 

Ответить

RAN

Дата: Понедельник, 29.10.2012, 21:11 |
Сообщение № 8

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Quote (Alex_ST)

гиперссылок на листе может быть не более 65530 штук

Леш, это от версии не зависит? Или это ограничение твоего любимого?


Быть или не быть, вот в чем загвоздка!

 

Ответить

Alex_ST

Дата: Понедельник, 29.10.2012, 21:21 |
Сообщение № 9

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Привет, Андрей!
Вот в упор не помню. Разбирался с этим в июне и всё уже выветрилось из головы.
На 2003-ем точно. На 2007/2010, кажется, тоже. Но не на 100% уверен.
Но ведь проверить-то просто: убери в коде ограничение на количество гиперссылок и просканируй без ограничения глубины что-нибудь монструозное, ну, например C:Windows biggrin



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

KuklP

Дата: Понедельник, 29.10.2012, 21:22 |
Сообщение № 10

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

65536. И это еще не все свинство мелкомягких. Не знаю, как с гиперссылками, а формулы листа в макросах не могут обрабатывать массивы большего размера. В том числе и в новых версиях. При миллионе строк на листе, это, мягко говоря, жалко выглядит.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

Alex_ST

Дата: Понедельник, 29.10.2012, 21:24 |
Сообщение № 11

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

или всё-таки 65535 ? biggrin



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

KuklP

Дата: Понедельник, 29.10.2012, 21:27 |
Сообщение № 12

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

А кто мешает тебе открыть свой(наш) любимый и нажать ctrl+down? tongue


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

RAN

Дата: Понедельник, 29.10.2012, 22:19 |
Сообщение № 13

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Quote (Alex_ST)

просканируй без ограничения глубины что-нибудь монструозное, ну, например C:Windows

ГЫ! У меня даже там всего половина!


Быть или не быть, вот в чем загвоздка!

 

Ответить

Alex_ST

Дата: Вторник, 30.10.2012, 09:04 |
Сообщение № 14

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Серёга, а ты про что без пояснения написал
Я вообще-то говорил про количество гиперссылок на листе. Так их ТОЧНО 65530
Я это проверял в пошаговом режиме (естественно, не нажимая 65000 раз F8, а тормознув программу Stop’ом на 65520 biggrin — лень было делать Exit For по ошибке )

А строк на листе нашего любимого 2003-го, действительно 65536.

А в ящике пива 24 бутылки, а в сутках 24 часа. Совпадение? biggrin



С уважением,
Алексей
MS Excel 2003 — the best!!!

Сообщение отредактировал Alex_STВторник, 30.10.2012, 09:05

 

Ответить

KuklP

Дата: Вторник, 30.10.2012, 09:10 |
Сообщение № 15

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

Леш, это делается без stop. add watch — i=65530 — ставим радиоточку на break if true. Потом этот watch можно редактировать прямо в окне watches:-)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

Alex_ST

Дата: Вторник, 30.10.2012, 09:11 |
Сообщение № 16

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Серёга, хорош флудить.



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

KuklP

Дата: Вторник, 30.10.2012, 09:12 |
Сообщение № 17

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

А где флуд? Все по теме.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

Alex_ST

Дата: Вторник, 04.12.2012, 13:39 |
Сообщение № 18

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Подправил файл (там, оказывается, поломалась расстановка гиперссылок)



С уважением,
Алексей
MS Excel 2003 — the best!!!

Сообщение отредактировал Alex_STВторник, 04.12.2012, 13:40

 

Ответить

Алексей

Дата: Пятница, 21.06.2013, 20:04 |
Сообщение № 19

Подскажите , а как сделать так что бы еще можно было особым образом помечать файлы и удалять их ?

 

Ответить

Alex_ST

Дата: Пятница, 21.06.2013, 21:17 |
Сообщение № 20

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Дорабатывать надо… И самое главное — придумать как именно удобно

Цитата (Алексей)

особым образом помечать файлы

Но мне это не нужно, а времени свободного сейчас нет…
Так что извините, но я сейчас с этим ковыряться просто не могу.



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

Поиск документа Excel по содержимому текста.

​Смотрите также​​ Excel-файл, то там​ ​ условии, что Excel​​Юрий М​​ макросы или дополнения,​​ If searchdepth% =​ coll.Count ‘ перебираем​ в которых имеется​
​ сентября — table_export_06KAsep.xls​
​: Я на планете​ ​ — (D5) вписано​
​ поиска настроен, жмем​«Искать»​ регистра.​ внутри слова. Например,​ разберемся, как он​ мы работали. Ищем​Рассмотрим,​ ячейки есть, но​ корректно определит разделитель,​
​: Я так понимаю,​ или нужно самому​ 0 Then searchdepth%​ все элементы коллекции,​ различные статьи и​Реально Буду рад​ дал древний файл​ слово.​ на кнопку​вы переведете в​
​К тому же, в​​ релевантным запросу в​ работает, и как​
​ среди них. Если​
​как найти документ​ в ТЕКСТОВОМ (csv)​ макрос укажет на​ что тему можно​
​ писать макрос?​ = 999 Set​ содержащей пути к​ основной файл, в​ любой помощи.​ кажется от Павла,​В одной папке​«OK»​ позицию​ выдачу может попасть​ этом случае будет​ им пользоваться.​ документ давно не​Excel по содержимому текста​
​ — их быть​ ячейку, как будто​ удалить?​Guest​ coll = FilenamesCollection(FolderPath$,​ файлам НомерФайла =​
​ которм выполняется поиск.​
​Иначе искать в​ ​ который делает чуть​ с Главным файлом​​.​
​«В книге»​ не только содержимое​ считаться слово «Направо».​Скачать последнюю версию​ открывали и его​,​ не может.​ он открывал Excel-файл.​
​abricos29​ ​: Комбинированный способ:​
​ searchmask$, searchdepth%) Application.ScreenUpdating​ i ПутьКФайлу =​ ​В основном файле​
​ ручную очень долго,​ больше — там​ — лежит несколько​Бывают случаи, когда нужно​, то поиск будет​ конкретной ячейки, но​ Если вы зададите​ Excel​
​ нет в списке,​таблицы​Скорее всего, Вы​Возможно, я не​: Я подобного не​Перебор файлов в​ = False For​ coll(i) ИмяФайла =​ вводится запрос для​ по причине того​ просто нужно лишнее​ подпапок с документами​​ произвести поиск не​ производиться по всем​ и адрес элемента,​ в поисковике цифру​Поисковая функция в программе​ то нажимаем на​, например, когда не​ говорите про csv-файл,​ прав, но мне​ нашёл на форуме,​ ​ папке — избитая​
​ i = 1​ Dir(ПутьКФайлу) ДатаСоздания =​ поиска по остальным​ что таких таблиц​ повыкидывать, и вывод​ экселя.​ по конкретному словосочетанию,​ листам открытого файла.​ на который она​ «1», то в​ Microsoft Excel предлагает​ кнопку «Компьютер».​ помним название файла,​ открытый в Excel​ так показалось.​ очень лаконичный и​ тема. Можно найти​ To coll.Count filenumber​ FileDateTime(ПутьКФайлу) РазмерФайла =​
​ файлам, и выдается​ на каждый регион​ подкорректировать.​Пытался сам написать​ а найти ячейки,​В параметре​
​ ссылается. Например, в​ ответ попадут ячейки,​ возможность найти нужные​Затем, нажимаем на кнопку​ документа, папки, т.д.​ )​AB1​ удобный макрос! Думаю​ кучу готовых кодов.​ = i pathtothefile​ FileLen(ПутьКФайлу) РазмерФайла =​ информация следующего характера​ (то есть их​А этот код​ макрос, но что-то​
​ в которых находятся​«Просматривать»​ ячейке E2 содержится​ которые содержат, например,​ текстовые или числовые​ «Обзор». В появившемся​Первый вариант.​AB1​: Добавил второй цикл:​ много кому может​В коде только​ = coll(i) Filename​ FileOrFolderSize(РазмерФайла) Workbooks.Open Filename:=ПутьКФайлу​В каком файле​ много)​ явно рождён был​ не работает -​

excel-office.ru

Поиск в программе Microsoft Excel

Поиск в Microsoft Excel

​ поисковые слова в​можно изменить направление​ формула, которая представляет​ число «516».​ значения через окно​ диалоговом окне в​Поиск документа​: Разумеется, мы же​Sub ПОИСК() Dim​ понадобиться, имхо.​ поменять исполняемую часть​ = Dir(pathtothefile) creationdate​ Workbooks(ПутьКФайлу).Activate Worksheets(Sheets(1)).Activate With​ найдено совпадение, 2-3​Basil​ не в Экселе​ выдает ошибку.​

​ любом порядке, даже,​ поиска. По умолчанию,​

Поисковая функция в Excel

​ собой сумму ячеек​Для того, чтобы перейти​ «Найти и заменить».​ строке поиска пишем​Excel по названию папки.​ рассуждаем не абстрактно,​ folder_$, file_$, s$​AB1​Guest​

Способ 1: простой поиск

​ = FileDateTime(pathtothefile) filesize​ ThisWorkbook.Worksheets(Sheets(1)) ‘ работаем​ предложения в котором​:​ — потому и​Подскажите, как макросом​ если их разделяют​ как уже говорилось​ A4 и C3.​

  1. ​ к следующему результату,​​ Кроме того, в​​ поисковую фразу или​​Нажимаем кнопку «Пуск»,​​ а в рамках​ Dim rw& Dim​: Спасибо за полезный​​: Sub test() Dim​​ = FileLen(pathtothefile) filesize​ 1 с листом​​ найдено совпадение.​​Не по теме:​ не работает. И​ осуществить поиск этого​ другие слова и​​ выше, поиск ведется​​ Эта сумма равна​

    Переход к поиску в Microsoft Excel

  2. ​ опять нажмите кнопку​ приложении имеется возможность​ слово. Мы написали​ расположенную в левом​ функционала данного макроса​ sh ‘————————— rw​​ макрос!​​ Folder As String​​ = FileOrFolderSize(filesize) Workbooks.Open​​ ПоследняяСтрокаБД = .Range(«a»​Заранее благодарен!​​Доброго дня.​​ в Экселе так​ слова в документах​ символы. Тогда данные​ по порядку построчно.​ 10, и именно​​«Найти далее»​​ расширенного поиска данных.​​ «визитка». Появится список​​ нижнем углу монитора.​

    Обычный поиск в Microsoft Excel

  3. ​abricos29​​ = 4 With​​abricos29​ Dim wb As​ Filename:=pathtothefile Workbooks(pathtothefile).Activate Worksheets(Sheets(1)).Activate​ & .Rows.Count).End(xlUp).Row ‘​sku144​

    ​Хочу сразу сказать​ по всем файлам​ экселя и вывести​ слова нужно выделить​ Переставив переключатель в​ это число отображается​.​Простой поиск данных в​ файлов Excel, имеющим​ В появившемся списке​: Еще этот макрос​

    ​ ThisWorkbook.Sheets(1) .UsedRange.Offset(3, 0).EntireRow.Delete​: Пожалуйста, один минус​ String Dim objWb​ With ThisWorkbook.Worksheets(Sheets(1)) lastline​ вычисляем номер последней​: Как вариант для​ — я вам​ поиск не пойдёт,​ в столбец G5:G16​ с обеих сторон​ позицию​ в ячейке E2.​Так можно продолжать до​ программе Excel позволяет​ в тексте слово​ нажимаем на кнопку​ ищет только в​ s = .Cells(2,​ всё же есть,​ As Workbook Dim​

    ​ = Cells(Rows.Count, 1).End(xlUp).Row​ строки Dim Диапазон_Ячеек_для_Поиска​ начала получить список​​ помочь не смогу.​​ если ранее вручную​

    Результат обычного поиска в Microsoft Excel

    ​ — названия тех​ знаком «*». Теперь​«По столбцам»​ Но, если мы​ тех, пор, пока​

  4. ​ найти все ячейки,​ «визитка».​ «Этот компьютер» (в​ папке, надо попробовать​​ 3).Value End With​​ я его попытался​ workWb As Workbook​ Dim rangeofcells As​ As Range, РезультатПоиска​ файлов где нужен​Понимаете, вас, как​ он так не​ файлов экселя, где​ в поисковой выдаче​, можно задать порядок​ зададим в поиске​ отображение результатов не​ в которых содержится​Внимание!​ Word 2013) или​ реализовать чтоб и​ If s =​ посадить на кнопку​ Dim i As​ Range, searchresults As​ As Range, АдресПервойНайденнойЯчейки​ поиск. Предположим, все​ я понял, интересуют​ остался настроенным, причём​

Найти всё в Microsoft Excel

Способ 2: поиск по указанному интервалу ячеек

​ это слово встречается​ будут отображены все​ формирования результатов выдачи,​ цифру «4», то​ начнется по новому​ введенный в поисковое​Внизу этого окна​ «Мой компьютер» (в​ в подпапках искал.​ «» Then MsgBox​ и вызываю в​ Integer Set workWb​ Range, addressfirstcell As​ As String Set​

  1. ​ файлы в одной​ продажи за период,​ синтаксис совсем другой.​

    Выделение интервала в Microsoft Excel

  2. ​ хотя бы один​ ячейки, в которых​​ начиная с первого​​ среди результатов выдачи​ кругу.​ окно набор символов​​ мы выбрали место​​ Word 2007).​ Будет совсем здорово.​ «Не заполненно поле​ качестве шаблона, естественно​ = ActiveWorkbook ‘Запоминаем​ String Set rangeofcells​ Диапазон_Ячеек_для_Поиска = .Range(.Cells(ПерваяСтрокаБД,​ папке с нашим​

Поиск по интервалу в Microsoft Excel

Способ 3: Расширенный поиск

​ а работаете вы​Т.е. этот код​ раз ?​ находятся данные слова​ столбца.​ будет все та​В случае, если при​ (буквы, цифры, слова,​ поиска «Все файлы​

​Откроется окно, в​Юрий М​ поиска!» Exit Sub​ шаблон лежит теперь​ активную книгу ‘Показываем​ = Sheets(1).Cells(lastline, 10)​ 1), .Cells(ПоследняяСтрокаБД, 2))​ запущенным. Тогда просто​ почему-то с отчетами​ проще переписать, чем​Kuzmich​ в любом порядке.​В графе​ же ячейка E2.​ запуске поисковой процедуры​ и т.д.) без​ Excel». Здесь мы​ правом верхнем углу​: Про .​ End If With​ в одном месте,​ диалог выбора папки​ Set searchresults =​ Set Диапазон_Ячеек_для_Поиска =​ определяем путь до​ о продажах за​ исправить.​: Может это поможет​Как только настройки поиска​«Область поиска»​

Результат поиска в Microsoft Excel

​ Как такое могло​ вы нажмете на​ учета регистра.​ можем выбрать другой​ которого, есть строка​abricos29​

  1. ​ Application With .FileDialog(msoFileDialogFolderPicker)​​ а файлы могут​​ With Application.FileDialog(msoFileDialogFolderPicker) .Title​ rangeofcells.Find(textsarch, , xlFormulas,​​ Диапазон_Ячеек_для_Поиска.EntireRow Set РезультатПоиска​​ нашего файла, затем​

    Переход в параметры поиска в Microsoft Excel

  2. ​ отдельный день.​RAN​http://www.planetaexcel.ru/techniques/12/45/​ установлены, следует нажать​определяется, среди каких​ получиться? Просто в​ кнопку​Находясь во вкладке​ вид файла. Например,​

    Параметры поиска по умолчанию в Microsoft Excel

    ​ поиска. В этой​​: Юрий спасибо за​​ If .Show =​​ где угодно. И​​ = «Выберите папку,​ xlPart) If Not​ = Диапазон_Ячеек_для_Поиска.Find(ТекстДляПоиска, LookAt:=xlPart)​ по этому пути​Не проще ли​: Подумаешь! Word тоже​http://excelvba.ru/code/FilenamesCollection​ на кнопку​ конкретно элементов производится​ ячейке E2 в​«Найти все»​«Главная»​ нам нужно найти​ строке пишем поисковую​ ссылку!​ False Then Exit​ гиперссылка не работает.​ файлы в которой​ searchresults Is Nothing​​ ‘ начинаем поиск​​ в массив собираем​ получить отчет о​ не без VBA!​SergVrn​«Найти всё»​ поиск. По умолчанию,​ качестве формулы содержится​, все результаты выдачи​, кликаем по кнопке​ текст в Excel’евском​

    Настройки поиска в Microsoft Excel

    ​ фразу, слова. Мы​abricos29​ Sub folder_ =​ Кто-нибудь может подсказать​​ нужно обработать» .ButtonName​​ Then addressfirstcell =​ If Not РезультатПоиска​​ все остальные файлы​​ продажах сразу за​adekarimov​: Kuzmich, зачем мне​

    Область поиска в Microsoft Excel

    ​или​​ это формулы, то​​ адрес на ячейку​ будут представлены в​«Найти и выделить»​ файле со словами​ написали «посчитать стаж».​: А вот с​ .SelectedItems(1) End With​​ какие изменения нужно​​ = «Выбрать» .AllowMultiSelect​ searchresults.address linenumber =​ Is Nothing Then​ где нужен будет​

    Содержимое поиска в Microsoft Excel

    ​ интересующий период? Чтобы​​: Доброго времени суток.​​ список файлов в​«Найти далее»​ есть те данные,​ A4, который как​ виде списка в​, которая расположена на​ визитка. Тогда мы​ Во время ввода​ поиском в подпапках​ folder_ = folder_​ внести в строку​ = False If​ searchresults.Row Range(«a» &​ ‘ если нашли​ поиск. Перебираем элементы​ была одна таблица,​Работаю в компании,​ папках, если я​, чтобы перейти к​ которые при клике​ раз включает в​ нижней части поискового​ ленте в блоке​ выберем функцию «Все​ поисковой фразы сразу​​ не осилил и​​ & IIf(Right(folder_, 1)​​ с добавлением гиперссылки,​​ .Show Then Folder​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ хоть одну подходящую​ массива в цикле​ а данные​​ которая занимается ежедневными​​ задавал вопрос -​

    Область поиска в программе Microsoft Excel

    ​ поисковой выдаче.​ по ячейке отображаются​ себя искомую цифру​​ окна. В этом​​ инструментов​

    Переход к формату поиска в Microsoft Excel

    ​ файлы». Появится список​ идет поиск.​ после прочтения статьи.​ = .PathSeparator, «»,​ чтобы она выдавала​ = .SelectedItems(1) Else​ _ Array(filenumber, Filename,​ ячейку АдресПервойНайденнойЯчейки =​ — каждый элемент​одной​ продажами. В процессе​ по поиску одного​Как видим, программа Excel​

    Формат поиска в Microsoft Excel

    ​ в строке формул.​ 4.​ списке находятся информация​«Редактирование»​ всех разных файлов​​Получился такой результат.​​ Кто-нибудь может подсказать​

    Переход к выбору ячейки для установки формата в Microsoft Excel

    ​ .PathSeparator) .ScreenUpdating =​ верный путь до​ Exit Sub End​ pathtothefile, creationdate, filesize,​ РезультатПоиска.Address ‘ запоминаем​ открываем, определяем количество​

    Выбор ячейки для установки формата в Microsoft Excel

    ​таблицы в любом​ создания отчета по​ СЛОВА.​​ представляет собой довольно​​ Это может быть​

    Установка формата поиска в Microsoft Excel

    ​Но, как отсечь такие,​ о содержимом ячеек​. В появившемся меню​ со словом «визитка»​Нажимаем на нужный документ,​ как интегрировать код​ False End With​ файла, ибо сейчас​ With ‘Начинаем читать​ searchresults) ActiveSheet.Hyperlinks.Add Range(«b»​ Адрес Первой Найденной​ вкладок и запускаем​ случае легче обрабатывать​ продожам сталкиваюсь с​buchlotnik​ простой, но вместе​ слово, число или​ и другие заведомо​

    Поиск по отдельным словам в Microsoft Excel

  3. ​ с данными, удовлетворяющими​ выбираем пункт​ — и текст​​ он откроется.​​ из статьи по​​ file_ = Dir(folder_​​ если макрос и​ файлы из папки​

Запуск расширенного поиска в Microsoft Excel

​ & Rows.Count).End(xlUp), pathtothefile,​ Ячейки НомерСтроки =​ вложенный цикл с​ (если это вообще​ необходимостью поиска Торгового​: не-а, в папках​ с тем очень​ ссылка на ячейку.​ неприемлемые результаты выдачи​ запросу поиска, указан​«Найти…»​ в Word, и​Внимание!​ ссылке выше в​ & «*.xls*») Do​ файл находятся в​ wb = Dir(Folder​ «», _ «Открыть​

​ РезультатПоиска.Row ‘ получаем​

lumpics.ru

Поиск текста в нескольких файлах Excel

​ перебором вкладок и​​ понадобится).​
​ представителя (ТП) и​и подпапках​ функциональный набор инструментов​
​ При этом, программа,​ поиска? Именно для​ их адрес расположения,​
​. Вместо этих действий​ файл Excel, и​Чем точнее укажем​
​ обсуждаемый макрос. Вероятно​ While file_ <>​
​ разных местах гиперссылка​

​ & Application.PathSeparator &​​ файл» & vbNewLine​ номер строки, в​
​ поиском на них​А вот такой​ его данные по​- вообще-то это​ поиска. Для того,​
​ выполняя поиск, видит​ этих целей существует​ а также лист​
​ можно просто набрать​ картинки с названием​ место хранения документа,​ ещё нужно будет​ «» DoEvents If​ выглядит так: Адрес​

​ «*.xls») While Len(wb)​ & Filename Do​

​ которой найдена подходящая​​ нужного. Если найдено,​

planetaexcel.ru

Поиск слова — по нескольким файлам экселя (Макросы/Sub)

​ подход, когда одному​​ продажам, который могут​
​ список тех файлов​ чтобы произвести простейший​
​ только ссылку, а​ расширенный поиск Excel.​ и книга, к​ на клавиатуре сочетание​
​ «визитка», т.д.​ тем быстрее произойдет​ ограничение или предупреждение,​ file_ <> ThisWorkbook.Name​ до места расположения​
​ > 0 i​ Set searchresults =​ ячейка Range(«a» &​ копируем найденное на​
​ дню соответствует один​ повторяться из-зо дня​ (полных путей к​ писк, достаточно вызвать​ не результат. Об​После открытия окна​ которым они относятся.​ клавиш​Как найти файл​ поиск документа.​

​ иначе нечаянно выделил​​ Then Workbooks.Open folder_​
​ макросаИмя файла.xls​
​ = i +​

​ rangeofcells.FindNext(searchresults) If Not​​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ главный документ.​ лист excel или,​ в день или​ ним), которые и​ поисковое окно, ввести​

​ этом эффекте велась​​«Найти и заменить»​​ Для того, чтобы​​Ctrl+F​ определенного типа, смотрите​Например, мы указали​ папку с 1000​ & file_ With​With ThisWorkbook.Sheets(1) .Cells(rw,​ 1 wb =​ searchresults Is Nothing​ _ Array(НомерФайла, ИмяФайла,​scofield-92​ еще хуже, одна​ же 1 раз​ нужно проверить -​

​ в него запрос,​​ речь выше. Для​любым вышеописанным способом,​ перейти к любому​

​.​​ в статье «Поиск​​ такой путь –​ ​ файлов и завис.​​ ActiveWorkbook For Each​​ 1) = ActiveWorkbook.Name​​ Folder & Application.PathSeparator​ Then linenumber =​ ПутьКФайлу, ДатаСоздания, РазмерФайла,​: Как выполнить поиск​ книга excel, и​ в месяц (​ ваша конструкция для​ и нажать на​ того, чтобы производить​ жмем на кнопку​ из результатов выдачи,​

​После того, как вы​​ документа Word по​
​ «Этот компьютер» -​Файлов порядка 100 штук​ sh In .Sheets​ .Hyperlinks.Add Anchor:=.Cells(rw, 1),​ & wb Set​ searchresults.Row Range(«a» &​ РезультатПоиска) ‘ если​ файлов понял, но​
​ при этом (!)​ по разным причинам,​
​ этого не годится​​ кнопку. Но, в​ поиск именно по​«Параметры»​ достаточно просто кликнуть​
​ перешли по соответствующим​ тексту» тут. Принцип​ «Документы» (мы помним,​

​ (содержание порядка 30000​​ Set c =​ Address:=ActiveWorkbook.Name, SubAddress:=c.Address End​ objWb = Workbooks.Open(wb)​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ нужна гиперссылка на​ как в этих​ данные из этих​ девайс неработал и​
​ (именно этот кусок​ то же время,​ результатам, по тем​.​ по нему левой​ пунктам на ленте,​ один.​ что документ находится​ строк в каждом)​ sh.Cells.Find(What:=s, After:=sh.Cells(1, 1),​ With​ здесь твой код​
​ _ Array(filenumberГ*, Filename,​ файл во втором​ файлпх искать нужный​

​ книг надо еще​​ тд). Хотелось бы​ кода не работает),​:D

excelworld.ru

Поиск значения в Таблицах в разных файлах Excel

​ существует возможность настройки​​ данным, которые отображаются​
​В окне появляется целый​ кнопкой мыши. После​ или нажали комбинацию​В Excel можно​ в папке «Документы»)​ нужен поиск по​ LookIn:=xlValues, LookAt:=xlPart) If​abricos29​ objWb.Close False wb​ pathtothefile, creationdate, filesize,​ столбце ActiveSheet.Hyperlinks.Add Range(«b»​ текст не могу​ и обрабатывать, мне​ автоматизировать поиск ТП​ а эти -​ индивидуального поиска с​ в ячейке, а​ ряд дополнительных инструментов​
​ этого курсор перейдет​
​ «горячих клавиш», откроется​ искать данные функциями,​ – «Excel» (в​
​ всем этим таблицам,​ Not c Is​: А вот, получилось,​ = Dir ‘читаем​ searchresults) ActiveSheet.Hyperlinks.Add Range(«b»​ & Rows.Count).End(xlUp), ПутьКФайлу,​​ разобрать(​​ представляется в корне​​ и его данные.​​ работают; или нужно​​ большим количеством различных​​ не в строке​ для управления поиском.​​ на ту ячейку​​ окно​ можно искать, выбирать,​ папке «Документы» есть​​ хотя бы с​​ Nothing Then With​ кому интересно, нужно​ следующий файл Wend​ & Rows.Count).End(xlUp), pathtothefile,​ «», _ «Открыть​sku144​ неверным.​Суть задачи​ до последнего бита​ параметров и дополнительных​​ формул, нужно переставить​​ По умолчанию все​​ Excel, по записи​​«Найти и заменить»​
​ переносить данные в​ две папки «Word»​ указанием файла, но​ ThisWorkbook.Sheets(1) .Cells(rw, 1)​ исправить кусок кода​ End Sub​ «», _ «Открыть​
​ файл» & vbNewLine​: Вот например http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=1&TID=45516​
​kuklp​table_export_03KAsep.xls за 3​
​ разжёвывать?​ настроек.​ переключатель из позиции​ эти инструменты находятся​ которой пользователь сделал​во вкладке​ другое место, в​

​ и «Excel». Мы​​ в идеале с​

​ = folder_ &​

​ из макроса выше​
​abricos29​ файл» & vbNewLine​ & ИмяФайла Do​
​ там можно посмотреть​:​ сентября + table_export_04KAsep.xls​SergVrn​Автор: Максим Тютюшев​«Формулы»​ в состоянии, как​
​ щелчок.​«Найти»​ другую таблицу, бланк,​ помним, что документ,​ выводом данных во​ ActiveWorkbook.Name .Hyperlinks.Add Anchor:=.Cells(rw,​​ на этот, после​​: Всем привет, пытался​ & Filename End​ ‘ ищем следующую​ примеры​
​adekarimov​ за 4 сентября​: buchlotnik, приведенные примеры​olegh​в позицию​ при обычном поиске,​Если у вас довольно​. Она нам и​ т.д. формулами. Какими​ который мы ищем,​ всплывающем окне и​ 1), Address:=folder_ &​

​ этого гиперссылка работает​​ реализовать поиск одного​​ If Loop While​​ ячейку Set РезультатПоиска​scofield-92​, если нельзя средствами​ну и за​ — не ищут​: Добрый день!​

​«Значения»​ но при необходимости​ масштабная таблица, то​ нужна. В поле​ способами можно искать​ находится в конкретной​ т.д.​ ActiveWorkbook.Name, SubAddress:=c.Address End​ независимо от нахождения​ значения сразу в​

CyberForum.ru

Поиск значений в нескольких файлах! (Формулы/Formulas)

​ searchresults.address <> addressfirstcell​​ = Диапазон_Ячеек_для_Поиска.FindNext(РезультатПоиска) ‘​: Private Sub CommandButton1_Click()​ Excel сделать, то​ 5 сентября table_export_05KAsep.xls,​ заданного слова.​Не подскажите есть​. Кроме того, существует​ можно выполнить корректировку.​ в таком случае​«Найти»​
​ данные в Excel,​
​ папке «Excel»).​ctrl+f прошу не​ With rw =​ файлов:​ нескольких файлах с​

​ End If End​​ АдресПервойНайденнойЯчейки End If​

excelworld.ru

Поиск в файлах excel по содержимому

​ ТекстДляПоиска = «*Антон*»​​ можно попробовать сделать​
​ а при создании​buchlotnik​
​ ли такая функция​ возможность поиска по​По умолчанию, функции​ не всегда удобно​вводим слово, символы,​
​ смотрите в статье​Если документ находится​ предлагать. (весь файл​ rw + 1​With ThisWorkbook.Sheets(1) .Cells(rw,​
​ выводом результатов на​ With Range(«a» &​ ‘ отключение режима​ [c1] = «C:UsersАдминистраторDesktop»​
​ с помощью VBA​

​ такой же таблицы​​: ваши слова? вам​ в Excel?​ примечаниям. В этом​«Учитывать регистр»​ производить поиск по​ или выражения, по​ «Поиск в Excel»​ на флэшке, то​ поисковит обходит, а​ Exit For End​ 1) = folder_​ Лист в виде​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ пропуска ошибок End​ ‘ Ищем файлы​ (другими словами -​ на 6 сентября​подсказали​Например у меня​ случае, переключатель переставляем​и​ всему листу, ведь​ которым собираемся производить​ и в перечне​

​ указываем (выделяем) флэшку.​​ мне нужно искать​ If Next .Close​ & ActiveWorkbook.Name .Hyperlinks.Add​ гиперссылок. Наткнулся в​ _ Array(filenumber, Filename,​ With Range(«a» &​

​ в заданной папке​​ макросы).​ «​половину​

​ есть 20 файлов​​ в позицию​«Ячейки целиком»​ в поисковой выдаче​ поиск. Жмем на​ статей по этой​ Сначала, естественно, вставим​ допустим в одном​ False End With​ Anchor:=.Cells(rw, 1), Address:=folder_​ сети на такое​ pathtothefile, creationdate, filesize,​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ по заданной маске,​Как-то так. Все​Total MTD​решения — по​ Excel,​«Примечания»​отключены, но, если​ может оказаться огромное​ кнопку​ теме, расположенном в​ флэшку в ноутбук.​ столбце, что сокраило​ End If file_​ & ActiveWorkbook.Name, SubAddress:=c.Address​ решение, оно ищет​ searchresults, linenumber) DoEvents​ _ Array(НомерФайла, ИмяФайла,​ ‘ и выводим​ файлы д.б. в​» на ТП-​нескольким файлам​мне нужно быстро​.​ мы поставим галочки​ количество результатов, которые​«Найти далее»​ конце статьи.​ : )​ бы время запроса)​ = Dir Loop​ End With​ и находит корректно,​ ActiveWorkbook.Close False Next​ ПутьКФайлу, ДатаСоздания, РазмерФайла,​ на лист список​ одной папке. Кнопка​МАУСЫМБАЕВА ОЛЬГА​, вам же подавай​ найти в каком​Ещё более точно поиск​ около соответствующих пунктов,​ в конкретном случае​, или на кнопку​Поработали — пора​Второй вариант.​Пробовал прописывать в​ file_ = Dir(folder_​AB1​ но при переходе​ On Error GoTo​ РезультатПоиска, НомерСтроки) DoEvents​ их параметров. ‘​ Свод собирает данные​суммируется «​ либо всё готовое,​ файле​ можно задать, нажав​ то в таком​ не нужны. Существует​«Найти всё»​ отдохнуть. )) А​Поиск книги​ екселе функцией поиска,​ & «*.csv») Do​: Работает, спасибо!​ по гиперссылкам почти​ 0 Range(«a:e»).EntireColumn.AutoFit End​ ‘ временно передаём​ Просматриваются папки с​ со всех файлов,​Total PC​ либо вы начинаете​находится текст: «Отчет​ на кнопку​ случае, при формировании​ способ ограничить поисковое​.​ если серьёзно, то,​Excel по тексту в​ на 20-ти файлах​ While file_ <>​AB1​ на всё выдаёт​ SubПоправил, но как​ управление ОС ActiveWorkbook.Close​ заданной глубиной вложения.​ кнопка Итоги суммирует​» и предыдущий день​ в не сильно​ №3″.​«Формат»​ результата будет учитываться​ пространство только определенным​При нажатии на кнопку​ в Excel есть​ ней​ работает, если больше,​ «» DoEvents If​: Подскажите, пожалуйста, как​

​ ошибку «не удаётся​​ определить диапозон в​

​ False Next On​​ Dim coll As​ уникальные на другой​ «​ вежливой манере критиковать​Спасибо.​
​.​ введенный регистр, и​ диапазоном ячеек.​«Найти далее»​ много возможностей, кроме​.​ то сильно долго​ file_ <> ThisWorkbook.Name​ добавить в макрос​ открыть указанный файл»!​ котором производится поиск,​ Error GoTo 0​ Collection, ПутьКПапке$, МаскаПоиска$,​ лист. Можно было​Total MTD​ помогающих (это касается​Guest​При этом открывается окно​ точное совпадение. Если​Выделяем область ячеек, в​мы перемещаемся к​ стандартных функций Excel,​Нам нужно найти​ соображает…​ Then Workbooks.Open folder_​ второе расширение для​ В итоге я​ и запись в​ Range(«a:e»).EntireColumn.AutoFit ‘ автоподбор​ ГлубинаПоиска% On Error​ все делать одним​» , но так​ не только этой​: Как вариант, стандартными​ формата ячеек. Тут​ вы введете слово​ которой хотим произвести​ первой же ячейке,​ которые можно применить​ книгу Excel, в​Говорят, что без​ & file_ With​ поиска (например, «*.csv»)?​ создал новый файл​ нашк главную книгу,​ ширины столбцов End​ Resume Next ПутьКПапке$​ махом, но лень​ как в table_export_05KAsep.xls​ темы). Не хотите​ средствами windows.​ можно установить формат​ с маленькой буквы,​ поиск.​ где содержатся введенные​ в своей работе.​ которой есть слово​ загрузки в БД​ ActiveWorkbook For Each​AndreTM​ с именем «1.xlsx»​ а не в​ SubПодскажите что не​ = [c1] ‘​zickland​ ТП-​ список файлов -​открываем папку с​ ячеек, которые будут​ то в поисковую​Набираем на клавиатуре комбинацию​ группы символов. Сама​ Например, как можно​ «январь». Пишем это​ не обойтись….Кто может​ sh In .Sheets​: Как вы собираетесь​ и вписал в​

​ открытую​​ так в этой​ берём из ячейки​: Здравствуйте! Нужно из​МАУСЫМБАЕВА ОЛЬГА​
​ не надо, разбирайтесь​ 20 документами, нажимаем​ участвовать в поиске.​ выдачу, ячейки содержащие​ клавиш​ ячейка становится активной.​ использовать шрифт для​ слово в строке​ рассказать как это​
​ Set c =​

CyberForum.ru

Поиск и замена в нескольких XLS файлах

​ сделать гиперссылку на​​ него всего одно​

​sku144​ строке, при отладке​ c1 МаскаПоиска$ =​
​ определенного списка найти​отсутствует, тогда функция​ сами.​ ctrl+f->выбираем документы->далее дополнительные​ Можно устанавливать ограничения​

​ написание этого слова​​Ctrl+F​
​Поиск и выдача результатов​ построения графика в​ поиска (смотрите первый​ и с чем​
​ sh.Cells.Find(What:=s, After:=sh.Cells(1, 1),​ «ячейку CSV» ?​

​ слово для поиска​​: Если вам нужен​ он не находит​ «*.*xl*» ‘ берём​ и выделить или​ поиска должна перейти​RAN​ параметры поиска, в​ по числовому формату,​ с большой буквы,​, после чего запуститься​ производится построчно. Сначала​ ячейке, т.д. Такой​ вариант, который мы​ едят???​ LookIn:=xlValues, LookAt:=xlPart) If​Сделайте из текстовых​ — Тест, вот​ поиск по всем​ данные, хотя они​ из ячейки c2​ как-то обозначить значения​ на поиск в​: Легко.​ них:​ по выравниванию, шрифту,​ как это было​ знакомое нам уже​ обрабатываются все ячейки​ способ мы рассмотрели​ рассмотрели выше).​Разбирался всегда со​ Not c Is​ файлов книги Excel​ почему то по​ ячейкам, используйте «Cells»​ там есть​

planetaexcel.ru

Поиск одного значения в нескольких файлах

​ ГлубинаПоиска% = 2​​ из нескольких файлов?​ таблице table_export_04KAsep.xls за​Макрсом поочередно открыть​В пункте «Слово​ границе, заливке и​ бы по умолчанию,​ окно​ первой строки. Если​ на примере создания​Получится такой результат.​ всем сам, теперь​ Nothing Then With​ — затем как​ ссылке на этот​ вместо «Диапазон_Ячеек_для_Поиска»​sku144​ ‘ берём из​ Объединение файлов для​ 4 сентября и​ все документы, в​ или фраза в​ защите, по одному​ уже не попадут.​«Найти и заменить»​ данные отвечающие условию​ простой игры. Смотрите​Третий вариант.​ жду помощи в​ ThisWorkbook.Sheets(1) .Cells(rw, 1)​ обычно…​ файл пройти получается,​Set РезультатПоиска =​: охх, кириллические переменные​

​ ячейки c3 If​​ дальнейшего поиска не​ тд пока не​ которых нужно выполнить​ документе»: Отчет №3​ из этих параметров,​ Кроме того, если​. Дальнейшие действия точно​

​ найдены не были,​​ статью «Игра в​Как найти нужный документ​ этом не легком​

​ = folder_ &​​AB1​ но опять же​ Cells.Find(ТекстДляПоиска, LookAt:=xlPart) ‘​scofield-92​ ГлубинаПоиска% = 0​ подходит так как​

​ найдет совпадения с​​ поиск, в каждом​В пункте «Поиск​

​ или комбинируя их​​ включена функция​ такие же, что​ программа начинает искать​ Excel».​ из открытого документа​ вопросе.​ ActiveWorkbook.Name .Hyperlinks.Add Anchor:=.Cells(rw,​: Я использовал «*.csv»​ с глюком, при​ начинаем поиск …​: Ну это бралось​ Then ГлубинаПоиска% =​ файлов может быть​ ФИО Торгового Представителя​ из этих документов,​ в»: выбираем(если вдруг​ вместе.​«Ячейки целиком»​ и при предыдущем​ во второй строке,​В документах Microsoft Excel,​Excel.​Сергей каханский​ 1), Address:=folder_ &​
​ вместо «*.xls*» -​ переходе в файл​ Set РезультатПоиска =​ с различный сайтов,​ 999 ‘ без​

​ очень много!​​ (ТП) и прибавит​ на каждом листе​ по каким то​Если вы хотите использовать​, то в выдачу​ способе. Единственное отличие​ и так далее,​ которые состоят из​
​В открытом документе​: эту задачу можно​ ActiveWorkbook.Name, SubAddress:=c.Address End​ все работает как​ искомое слово исчезает!​ Cells.FindNext(РезультатПоиска)а вот первая​

​ не мое воплощение))​​ ограничения по глубине​

​Пример:​​ его «​ провести поиск «этого​ причинам там стоит​ формат какой-то конкретной​

​ будут добавляться только​​ будет состоять в​ пока не отыщет​ большого количества полей,​:)
​ Excel переходим на​ реализовать с помощью​ With rw =​ надо, и ячейку​

​ Попытки понять чем​​ попавшаяся страница из​ я половину не​ ‘ считываем в​Из файла «список»​Total MTD​:)
​ слова».​ не текущая) папку​ ячейки, то в​

​ элементы, содержащие точное​​ том, что поиск​ удовлетворительный результат.​

​ часто требуется найти​​ закладку «Файл» (в​ макроса, который будет​ rw + 1​ определяет корректно​ другие файлы отличаются​ гугла как копировать​ понимаю как работает​ колекцию coll нужные​
​ нужно найти в​» к «​Если нашли -​

​ с 20 документами.​​ нижней части окна​
​ наименование. Например, если​ выполняется только в​Поисковые символы не обязательно​ определенные данные, наименование​ Excel 2013) или​ последовательно открывать каждый​ Exit For End​Хотя, мне достаточно​ от вновьсозданного не​ данные с книги​Private Sub CommandButton1_Click()​ имена файлов Set​ файлах «Для сопоставления​Total PC​ вывести имя файла​Это действительно простейший​ нажмите на кнопку​ вы зададите поисковый​ указанном интервале ячеек.​ должны быть самостоятельными​ строки, и т.д.​ нажимаем на кнопку​ файл, производить необходимые​ If Next .Close​ имени файла, в​ увенчались успехом.​ на книгу​ textsarch = «*антон*»​ coll = FilenamesCollection(ПутьКПапке$,​ 1, 2, 3″​».​Цитата​ вариант.​«Использовать формат этой ячейки…»​ запрос «Николаев», то​Как уже говорилось выше,​ элементами. Так, если​ Очень неудобно, когда​ «Office» в левом​ действия и закрывать​ False End With​ котором найден текст.​abricos29​http://sirexcel.ru/makrosi_vba/kak_s…igi_v_druguyu/​ [c1] = «C:Users»​ МаскаПоиска$, ГлубинаПоиска%) Application.ScreenUpdating​ одинаковые значения?​Во первых проблема​SergVrn, 01.12.2017 в​olegh​.​ ячейки, содержащие текст​ при обычном поиске​ в качестве запроса​ приходится просматривать огромное​ верхнем углу (в​ его. Только опишите​ End If file_​Юрий М​: Извиняюсь, затупил, файл​dimatel2013​ Dim coll As​ = False ‘​zickland​ создания такой функции​ 17:59, в сообщении​: да, спасибо​После этого, появляется инструмент​ «Николаев А. Д.»,​ в результаты выдачи​ будет задано выражение​ количество строк, чтобы​ Excel 2007).​ на примере одного​ = Dir Loop​: В .csv НЕТ​ с макросом и​: Добрый день!​

​ Collection, FolderPath$, searchmask$,​​ отключаем обновление экрана​: Еще файлы!​ поиска в разных​ № 1 ()​SergVrn​ в виде пипетки.​
​ в выдачу уже​ попадают абсолютно все​ «прав», то в​ найти нужное слово​

​В появившемся диалоговом​​ файла, что и​ Application.ScreenUpdating = True​ ячеек.​ файлы в которых​:)

​Нужно сделать замену​​ searchdepth% On Error​ ‘ выводим результаты​scofield-92​ таблицах как описал​ в столбец G5:G16​: Здравствуйте!​

​ С помощью него​​ добавлены не будут.​

​ ячейки, содержащие последовательный​​ выдаче будут представлены​ или выражение. Сэкономить​

​ окне нажимаем на​​ как должно быть​ Beep MsgBox «Готово!»​AB1​ ищем должны быть​ в нескольких .xls​ Resume Next FolderPath$​ (список файлов, и​: Добрый день.​ выше а также​Если не нашли,​Ищу ответ на​ можно выделить ту​По умолчанию, поиск производится​ набор поисковых символов​

planetaexcel.ru

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

​ все ячейки, которые​ время и нервы​ функцию «Открыть». Появится​ организовано, что ищем​ End Sub​: Если данный макрос​ на одном уровне,​ файлах.​ = [c1] searchmask$​ их характеристик) на​Подскажите, пожалуйста, как​
​ такие таблици будут​ выводить имя файла​ непростой вопрос.​ ячейку, формат которой​ только на активном​ в любом виде​ содержат данный последовательный​
​ поможет встроенный поиск​ список последних книг​ и как выводим​Юрий М​ при поиске открывает​ в одной папке!​

​Подскажите, какие есть​ = «*.*xl*» ‘​ лист For i​ реализовать следующую задачу:​ добавляться ежедневно.​ не нужно.​
​В файле «ГЛАВНЫЙ​ вы собираетесь использовать.​ листе Excel. Но,​ не зависимо от​ набор символов даже​

​ Microsoft Excel. Давайте​​ Excel, с которыми​ результаты поиска.​: Если Вы про​ файлы, то при​ Макрос работает отлично.​ варианты — готовые​ searchdepth% = 1​ = 1 To​Имеются файлы excel,,​Таблица за 6​Hugo​ ФАЙЛ.xls» в ячейку​После того, как формат​

​ если параметр​

Получение списка папок 1, 2 и 3 уровней вложенности с помощью кода VBA Excel. SubFolders — коллекция подпапок, расположенных в указанной папке.

Свойство SubFolders объекта Folder

SubFolders — это свойство объекта Folder, которое возвращает коллекцию подпапок, расположенных в указанной папке (Folder), включая скрытые и системные папки.

Обход папок разных уровней вложенности можно использовать не только для того, чтобы отобразить список папок на экране, но и для работы с находящимися в них файлами.

Список папок 1 уровня вложенности

Получение списка папок 1 уровня вложенности:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Sub ShowFolderSublevel1()

    Dim fso As FileSystemObject, fo As Folder, fo1 As Folder, s As String

    ‘Указываем адрес исходной папки

    s = «C:Users»

    ‘Создаем экземпляр FileSystemObject

    Set fso = CreateObject(«Scripting.FileSystemObject»)

    ‘Присваиваем переменной fo ссылку на указанную папку

    Set fo = fso.GetFolder(s)

        ‘Отключаем обработчик ошибок

        On Error Resume Next

            ‘Обходим циклом коллекцию подпапок в указанной папке

            For Each fo1 In fo.SubFolders

                ‘Печатаем полное имя текущей подпапки в окне Immediate

                Debug.Print fo1 ‘.Path — по умолчанию

            Next

        ‘Включаем обработчик ошибок

        On Error GoTo 0

End Sub

Если в исходной папке нет подпапок, то применение свойства SubFolders вызовет ошибку. Чтобы пропускать такие ошибки, мы отключаем обработчик ошибок на время работы циклов.

Список папок 2 уровня вложенности

Получение списка папок 1 и 2 уровней вложенности:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Sub ShowFolderSublevel2()

    Dim fso As FileSystemObject, fo As Folder, fo1 As Folder, fo2 As Folder, s As String

    s = «C:Users»

    Set fso = CreateObject(«Scripting.FileSystemObject»)

    Set fo = fso.GetFolder(s)

        On Error Resume Next

            ‘Обходим коллекцию подпапок 1 уровня вложенности

            For Each fo1 In fo.SubFolders

                Debug.Print fo1

                    ‘Обходим коллекцию подпапок 2 уровня вложенности

                    For Each fo2 In fo1.SubFolders

                        ‘Перед полным именем подпапки 2 уровня добавляем 4 пробела

                        Debug.Print Space(4) & fo2

                    Next

            Next

        On Error GoTo 0

End Sub

Список папок 3 уровня вложенности

Получение списка папок 1, 2 и 3 уровней вложенности:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

Sub ShowFolderSublevel3()

    Dim fso As FileSystemObject, fo As Folder, fo1 As Folder, fo2 As Folder, fo3 As Folder, s As String

    s = «C:Users»

    Set fso = CreateObject(«Scripting.FileSystemObject»)

    Set fo = fso.GetFolder(s)

        On Error Resume Next

            ‘Обходим коллекцию подпапок 1 уровня вложенности

            For Each fo1 In fo.SubFolders

                Debug.Print fo1

                    ‘Обходим коллекцию подпапок 2 уровня вложенности

                    For Each fo2 In fo1.SubFolders

                        ‘Перед полным именем подпапки 2 уровня добавляем 4 пробела

                        Debug.Print Space(4) & fo2

                            ‘Обходим коллекцию подпапок 3 уровня вложенности

                            For Each fo3 In fo2.SubFolders

                                ‘Перед полным именем подпапки 3 уровня добавляем 8 пробелов

                                Debug.Print Space(8) & fo3

                            Next

                    Next

            Next

        On Error GoTo 0

End Sub

Обратите внимание, если вы будете использовать для тестов папку «C:Users» как исходную, все строки с наименованиями подпапок в окне Immediate не уместятся (ограничение — 200 строк).

Как получить список файлов в папке, смотрите в статье VBA Excel. Список файлов в папке.


Фразы для контекстного поиска: вложенная папка, вложенные папки, список подпапок, обход подпапок, вывод списка.


0 / 0 / 0

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

Сообщений: 15

1

Поиск в папках и подпапках

24.04.2016, 23:29. Показов 14307. Ответов 9


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

Здравствуйте! Делаю курсовую на VBA и к сожалению только на нём. По моей задумке мне надо вывести в файл все файлы и папки, а так же все файлы в подпапках и подпапки. Смог вывести только то что в начальной папке и её подпапках(2 уровень), пользуясь dir. Пробовал писать рекурсию, но тогда начинаются проблемы с путями для dir из-за разветвления. Посоветуйте в каком направлении идти, в интернете искал, очень много нашёл всяких конструкций для VB, но мне надо именно на VBA (MS Office Excel 2003).



0



5 / 5 / 2

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

Сообщений: 10

25.04.2016, 02:59

2

Отлично работает рекурсия с функцией Dir(), буквально пару часов назад открывал макрос, осуществляющий обход каталогов посредством этой функции. Есть ещё вот такая вещь для работы с файловой системой в VBA — FileSystemObject.



0



Alex77755

11482 / 3773 / 677

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

Сообщений: 11,145

25.04.2016, 09:41

3

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Комманда1_Click()
 Dim FSO As Object
   Set FSO = CreateObject("Scripting.FileSystemObject")
   Search FSO.GetFolder("D:")
End Sub
 
 Sub Search(Fold As Object)
 Dim SubFold As Object, Fil As Object
   Debug.Print Fold
   On Error GoTo ErrHandle
   For Each SubFold In Fold.SubFolders
     Search SubFold
   Next SubFold
   For Each Fil In Fold.Files
        Debug.Print Fil
   Next Fil
   Exit Sub
ErrHandle:
   MsgBox "Нет допуска к папке """ & Fold.Path & """"
   Err.Clear
End Sub



2



Shersh

Заблокирован

25.04.2016, 10:28

4

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

Отлично работает рекурсия с функцией Dir(), … осуществляющий обход каталогов

Кодом не поделитесь?
Без костылей обход вложенных каталогов у меня не получается…



0



5 / 5 / 2

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

Сообщений: 10

25.04.2016, 13:55

5

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

Кодом не поделитесь?
Без костылей обход вложенных каталогов у меня не получается…

Ну собственно с «костылями» видимо и у меня; насколько я помню собирал каталоги в строку, разделяя их «/», и передавал эту строку в эту же функцию.
(Точнее могу после работы посмотреть)



0



Gunjy

5 / 5 / 2

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

Сообщений: 10

25.04.2016, 23:55

6

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

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Function Recursive_Dir(ByVal Path As String)
    Dim CurrentFile As String
    Dim Directories As String
    Directories = ""
    Dir Path & "*.*", vbDirectory 'skip "."
    Dir 'skip ".."
 
    Do
        CurrentFile = Dir()
        If CurrentFile <> "" And (GetAttr(Path & "" & CurrentFile) And vbDirectory) Then
            Debug.Print CurrentFile & " (Directory)"
            Directories = Directories & CurrentFile & "/"
        ElseIf CurrentFile <> "" Then
            Debug.Print CurrentFile
        End If
    Loop While CurrentFile <> ""
    
    While Directories <> ""
        Recursive_Dir Path & "" & Left(Directories, InStr(Directories, "/") - 1)
        Directories = Mid(Directories, InStr(Directories, "/") + 1)
    Wend
End Function

Вложения

Тип файла: xls 3.xls (32.5 Кб, 68 просмотров)



3



5561 / 1367 / 150

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

Сообщений: 4,107

Записей в блоге: 30

26.04.2016, 00:12

7

Есть готовый Excel-проект, но без рекурсивного углубления в подпапки. Пригодится?

Миниатюры

Поиск в папках и подпапках
 



0



Shersh

Заблокирован

26.04.2016, 09:10

8

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

Решение

Пара уточнений, если позволите.

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

Visual Basic
1
2
Dir Path & "*.*", vbDirectory 'skip "."
Dir 'skip ".."

— если начнете с корневой («C:» к примеру) папки, то пропустите два ни в чем неповинных файла (или папки).

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

Dir Path & «*.*», vbDirectory ‘skip «.»

— будут пропущены все только_для_чтения, скрытые и(ли) системные файлы и папки.
Если они вдруг нужны, то стоит вместо vbDirectory записать vbReadOnly +vbHidden +vbSystem +vbDirectory

В итоге —

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Function Recursive_Dir(ByVal Path As String)
    Dim CurrentFile As String
    Dim Directories As String
    CurrentFile = Dir(Path & "*.*", 63)
    While Len(CurrentFile)
        If CurrentFile <> "." And CurrentFile <> ".." Then
            If GetAttr(Path & "" & CurrentFile) And vbDirectory Then
                Debug.Print CurrentFile & " (Directory)"
                Directories = Directories & CurrentFile & "/"
            Else
                Debug.Print CurrentFile
            End If
        End If
        CurrentFile = Dir
    Wend
    
    While Directories <> ""
        Recursive_Dir Path & "" & Left(Directories, InStr(Directories, "/") - 1)
        Directories = Mid(Directories, InStr(Directories, "/") + 1)
    Wend
End Function

Примерно такие костыли я и делал в своё время, пока не остановился на FSO.



1



0 / 0 / 0

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

Сообщений: 15

26.04.2016, 17:01

 [ТС]

9

Всем спасибо, разобрался.



0



RadioBoTt

0 / 0 / 0

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

Сообщений: 12

18.11.2019, 08:51

10

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

Отлично работает рекурсия с функцией Dir(), буквально пару часов назад открывал макрос, осуществляющий обход каталогов посредством этой функции. Есть ещё вот такая вещь для работы с файловой системой в VBA — FileSystemObject.

Пробую функцию на основании Dir (). Все получилось, список каталогов и файлов перебирается. Пытаюсь присвоить функции массив строковых данных (адреса файлов) и сделать вывод. Не получается никак. Дает ошибку диапазона значений.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
sub Вывод_адресов ()
 
Dim Res () As Variant
 
Res () = Func ("D:TEST")
 
For i = 1 to UBound (Res)                           '<
      Debug.Print Res (i)                              ' <=== Без цикла все работает, с циклом выдет ошибку
Next                                                        '<        Subscript out of range
 
End Sub
 
Function Func (path As String) As Variant ()
Dim CF As String
Dim Dirs As String
Dim result () As Variant
Dim n As Integer
n = 1
 
Dirs = ""
 
CF = Dir (path & "*.*", 63)
 
While Len (CF)
    If CF <> "." And CF <> ".." Then
        If GetAttr (path & "" & CF) And vbDirectory Then
            Dirs = Dirs & CF & "/"
        Else
            If (Right(CF, 3) = "doc" Or Right(CF, 4) = "docx") And Left(CF, 1) <> "~" Then
                Debug.Print CF
                ReDim Preserve result(1 To n)
                result(n) = path & "" & CF
                Debug.Print result(n)
                n = n + 1
            End If
 
        End If
    End If
    CF = Dir
Wend
 
While Dirs <> ""
    Func path & "" & Left(Dirs, InStr(Dirs, "/") - 1)
    Dirs = Mid(Dirs, InStr(Dirs, "/") + 1)
Wend
 
 
    
    Func= result
    Debug.Print "Результат назначен"
 
End Function



0



Файлы к уроку:

  • Для спонсоров Boosty
  • Для спонсоров VK
  • YouTube
  • VK

Описание

Создадим макросы, которые выводят на листах Excel списки всех файлов в папке, папок и файлов внутри папок.

Решение

Список всех файлов внутри папки
' Перечень файлов внутри папки
Sub get_file_names()

    Dim objFSO As Object        ' В этой переменной будет объект FileSystemObject
    Dim objFolder As Object     ' В этой переменной будет объект Folder
    
    ' Получаем доступ к файловой системе компьютера
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    ' Создаем объект Folder
    Set objFolder = objFSO.GetFolder("c:Userstimur.kryukovDownloadscomrade.excel ideasVBA. Практика. Список всех файлов в папкеDirectory")
    
    ' Строка для вывода
    row = 2
    
    ' Цикл по каждому файлу в папке
    For Each file In objFolder.Files
        ' Имя файла
        Cells(row, 1) = file.Name
        ' Путь к папке
        Cells(row, 2) = objFolder
        ' Переход на следующую строку
        row = row + 1
    Next file
    
    ' Автоподбор ширины
    Columns("A").EntireColumn.AutoFit

End Sub
Список всех папок внутри папки
' Перечень папок внутри папки
Sub get_subfolder_names()

    Dim objFSO As Object
    Dim objFolder As Object
    
    ' Получаем доступ к файловой системе компьютера
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    ' Создаем объект Folder
    Set objFolder = objFSO.GetFolder("c:Userstimur.kryukovDownloadscomrade.excel ideasVBA. Практика. Список всех файлов в папкеDirectory")
    
    ' Строка для вывода
    row = 2
    
    ' Цикл по каждой папке в папке
    For Each folder In objFolder.subfolders
        ' Вывод имени файла
        Cells(row, 1) = folder.Name
        ' Путь к папке
        Cells(row, 2) = folder.Path
        ' Переход на следующую строку
        row = row + 1
    Next folder
    
    ' Автоподбор ширины
    Columns("A").EntireColumn.AutoFit
    
End Sub
Список всех файлов в папке, папок и файлов внутри папок
' Перечень папок и файлов внутри них
Sub get_subfolder_and_file_names()

    Dim objFSO As Object
    Dim objFolder As Object
    
    ' Получаем доступ к файловой системе компьютера
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    ' Создаем объект Folder
    Set objFolder = objFSO.GetFolder("c:Userstimur.kryukovDownloadscomrade.excel ideasVBA. Практика. Список всех файлов в папкеDirectory")
    
    ' Строка для вывода
    row = 2
    
    ' Цикл по каждой папке
    For Each subfolder In objFolder.subfolders
        ' Цикл по каждому файлу
        For Each file In subfolder.Files
            ' Имя папки
            Cells(row, 1) = subfolder.Name
            ' Имя файла
            Cells(row, 2) = file.Name
            ' Путь к файлу/папке
            Cells(row, 3) = file.Path
            ' Переход на следующую строчку
            row = row + 1
        Next file
    Next subfolder
    
    For Each file In objFolder.Files
        ' Имя папки
        Cells(row, 1) = objFolder.Name
        ' Имя файла
        Cells(row, 2) = file.Name
        ' Путь к файлу
        Cells(row, 3) = file.Path
        ' Переход на следующую строчку
        row = row + 1
    Next file
    
End Sub

Примененные функции

  • .GetFolder
  • Cells
  • CreateObject
  • For Each
  • Scripting.FileSystemObject

Содержание

  1. Как найти текстовый документ на компьютере, если не помнишь название
  2. Эволюция функции «Поиск»
  3. Начинаем искать
  4. Все текстовые документы
  5. По имени
  6. По дате
  7. По типу
  8. По размеру
  9. По содержанию
  10. Поиск в excel в нескольких файлах
  11. Поиск документа Excel по содержимому текста.
  12. Поиск в программе Microsoft Excel
  13. Поисковая функция в Excel
  14. Способ 1: простой поиск
  15. Способ 2: поиск по указанному интервалу ячеек
  16. Способ 3: Расширенный поиск
  17. Поиск текста в нескольких файлах Excel
  18. Поиск значения в Таблицах в разных файлах Excel
  19. Поиск значений в нескольких файлах! (Формулы/Formulas)
  20. Поиск в файлах excel по содержимому
  21. Поиск и замена в нескольких XLS файлах
  22. Поиск одного значения в нескольких файлах
  23. Как произвести поиск по нескольким Excel файлам?
  24. Поиск файлов по их содержимому в Windows 10
  25. Поиск файлов по содержимому в Виндовс 10
  26. Способ 1: Сторонние программы
  27. Способ 2: Поиск через «Пуск»

Как найти текстовый документ на компьютере, если не помнишь название

Poisk

Эволюция функции «Поиск»

Первоначально поговорим об эволюции поисковой функции с появлением новых версий Windows. Помните XP? Окно поиска было отдельным. Ещё там сидел симпатичный помощник – собачка или кто-то другой. Попасть в него можно было через «Пуск».

Poisk1

В левую часть окна были вынесены настройки поиска:

Результаты отображались в правой части окна. На мой взгляд, очень удобно всё было устроено.

В новых версиях Windows – 7, 8 и 10 функция претерпела косметические изменения. Почему косметические? Да потому что её действие осталось прежним, но только параметры поиска задаются автоматически, когда в строку, расположенную и сразу в меню Пуск, и в каждой папке, вы вписываете значение для поиска. Либо их можно также настроить, но совершенно в другом месте. Исключение – только поиск по содержанию документа, но и это легко решаемо. Пока непонятно? Рассмотрим подробнее по каждому параметру чуть ниже. Зачем разработчики всё усложнили, точнее, упростили? Видимо, они заботились о нас вечно занятых пользователях.

Вот как выглядит поисковая строка в Windows 10.

Poisk2

А вот так в восьмой точка один версия ОС.

Poisk3

Поскольку с XP всё понятно, я буду рассказывать о различных возможностях поиска на примере «восьмёрки», тем более «семёрка» и «десятка» от неё в этом вопросе практически не отличаются.

Начинаем искать

Друзья, хватит разглагольствовать, приступим к основному вопросу — как можно найти потерявшийся документ Word на компьютере по разным его характеристикам.

Все текстовые документы

Сначала давайте попробуем найти на компьютере абсолютно все текстовые документы, не оглядываясь на такие параметры, как их название, содержимое и дата создания. Для этого откройте «Мой…», «Этот…» или просто «Компьютер». В правом верхнем его углу, рядом со строкой пути, найдётся и поисковая строка. А по соседству с основными разделами меню («Файл», «Вид» и другими) найдётся раздел «Поиск». Забегая вперёд, скажу, что именно там находятся настройки основных параметров.

Poisk4

Друзья, если вы хотя бы знаете, в какой папке находятся ваши текстовые документы, то перейдите в неё – это значительно облегчит работу вашей машине. Для поиска всех текстовых документов в строке необходимо вписать значение *.doc, *.docx или *.txt (зависит от того, что вы планируете найти).

По имени

Если вы знаете имя документа, то отыскать его не составит труда. Просто введите имя в строку поиска, и «вкушайте плоды». Но что делать, если название нужного файла в голове не сохранилось? В таком случае у вас остаётся ещё несколько вариантов – найти нужный документ, отсортировав имеющиеся по дате его рождения на свет (или изменения), по размеру (от пустых и крошечных до огромных и гигантских), по типу (выбрав «документ») или по внутреннему тексту.

По дате

Зайдите в любую папку, поставьте курсор в поисковую строку. В этот же момент отобразится новый раздел меню «Поиск». Раскройте его содержимое. Среди прочих настроек вы увидите параметр «по дате создания» (или последнего изменения). Среди возможных вариантов диапазоны времени от «сегодня» до «в прошлом году». Или просто попробуйте в строку ввести значение в виде точной даты. В результатах должны отобразиться все документы, созданные или изменённые указанного числа.

Poisk5

По типу

Среди тех же настроек имеется параметр «по типу». Перечень возможных вариантов включает файлы всех возможных типов – от календаря и контакта до музыки и фильма. В нашем случае требуется выбрать значение «документ».

Poisk6

По размеру

Тут же можно выбрать и размер. Машина будет искать даже пустые документы. Максимальный размер для поиска – 128 мегабайт.

Poisk7

По содержанию

Друзья, вот и подошли к тому, с чего начали – поиск текстового файла по его содержимому. Есть два варианта. Первый – это отметить галочкой нужный параметр всё в тех же настройках. Там есть раздел «Дополнительные параметры», в котором следует пометить галочкой пунктик «Содержимое файлов». Затем вводите нужную фразу в строке и запускайте поисковый процесс.

Poisk8

Poisk9

Poisk10

В то же окно настроек можно попасть и по-другому (актуально для «семёрки»):

Poisk11

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

Источник

Поиск в excel в нескольких файлах

Поиск документа Excel по содержимому текста.

Поиск в программе Microsoft Excel

excel poisk v tablice 1

​ поисковые слова в​можно изменить направление​ формула, которая представляет​ число «516».​ значения через окно​ диалоговом окне в​Поиск документа​: Разумеется, мы же​Sub ПОИСК() Dim​ понадобиться, имхо.​ поменять исполняемую часть​ = Dir(pathtothefile) creationdate​ Workbooks(ПутьКФайлу).Activate Worksheets(Sheets(1)).Activate With​ найдено совпадение, 2-3​Basil​ не в Экселе​ выдает ошибку.​

​ любом порядке, даже,​ поиска. По умолчанию,​

Поисковая функция в Excel

​ собой сумму ячеек​Для того, чтобы перейти​ «Найти и заменить».​ строке поиска пишем​Excel по названию папки.​ рассуждаем не абстрактно,​ folder_$, file_$, s$​AB1​Guest​

Способ 1: простой поиск

excel poisk v tablice 1 1

excel poisk v tablice 2 1

​Хочу сразу сказать​ по всем файлам​ экселя и вывести​ слова нужно выделить​ Переставив переключатель в​ это число отображается​.​Простой поиск данных в​ файлов Excel, имеющим​ В появившемся списке​: Еще этот макрос​

​ = Cells(Rows.Count, 1).End(xlUp).Row​ строки Dim Диапазон_Ячеек_для_Поиска​ начала получить список​​ помочь не смогу.​​ если ранее вручную​

excel poisk v tablice 3 1

excel poisk v tablice 4 1

Способ 2: поиск по указанному интервалу ячеек

​ это слово встречается​ будут отображены все​ формирования результатов выдачи,​ цифру «4», то​ начнется по новому​ введенный в поисковое​Внизу этого окна​ «Мой компьютер» (в​ в подпапках искал.​ «» Then MsgBox​ и вызываю в​ Integer Set workWb​ Range, addressfirstcell As​ As String Set​

excel poisk v tablice 5 1

excel poisk v tablice 6 1

Способ 3: Расширенный поиск

excel poisk v tablice 7 1

​ Как такое могло​ вы нажмете на​ учета регистра.​ можем выбрать другой​ которого, есть строка​abricos29​

excel poisk v tablice 8 1

excel poisk v tablice 9 1

excel poisk v tablice 10 1

excel poisk v tablice 11 1

excel poisk v tablice 12 1

excel poisk v tablice 13 1

​ поисковой выдаче.​ по ячейке отображаются​ себя искомую цифру​​ окна. В этом​​ инструментов​

excel poisk v tablice 14 1

excel poisk v tablice 15 1

​ в строке формул.​ 4.​ списке находятся информация​«Редактирование»​ всех разных файлов​​Получился такой результат.​​ Кто-нибудь может подсказать​

excel poisk v tablice 16 1

excel poisk v tablice 17 1

​таблицы в любом​ создания отчета по​ СЛОВА.​​ представляет собой довольно​​ Это может быть​

excel poisk v tablice 18 1

​Но, как отсечь такие,​ о содержимом ячеек​. В появившемся меню​ со словом «визитка»​Нажимаем на нужный документ,​ как интегрировать код​ False End With​ файла, ибо сейчас​ With ‘Начинаем читать​ searchresults) ActiveSheet.Hyperlinks.Add Range(«b»​ Адрес Первой Найденной​ вкладок и запускаем​ случае легче обрабатывать​ продожам сталкиваюсь с​buchlotnik​ простой, но вместе​ слово, число или​ и другие заведомо​

excel poisk v tablice 19 1

excel poisk v tablice 20 1

​ & Rows.Count).End(xlUp), pathtothefile,​ Ячейки НомерСтроки =​ вложенный цикл с​ (если это вообще​ необходимостью поиска Торгового​: не-а, в папках​ с тем очень​ ссылка на ячейку.​ неприемлемые результаты выдачи​ запросу поиска, указан​«Найти…»​ в Word, и​Внимание!​ ссылке выше в​ & «*.xls*») Do​ файл находятся в​ wb = Dir(Folder​ «», _ «Открыть​

Поиск текста в нескольких файлах Excel

​ перебором вкладок и​​ понадобится).​
​ представителя (ТП) и​и подпапках​ функциональный набор инструментов​
​ При этом, программа,​ поиска? Именно для​ их адрес расположения,​
​. Вместо этих действий​ файл Excel, и​Чем точнее укажем​
​ обсуждаемый макрос. Вероятно​ While file_ <>​
​ разных местах гиперссылка​

​ & Application.PathSeparator &​​ файл» & vbNewLine​ номер строки, в​
​ поиском на них​А вот такой​ его данные по​- вообще-то это​ поиска. Для того,​
​ выполняя поиск, видит​ этих целей существует​ а также лист​
​ можно просто набрать​ картинки с названием​ место хранения документа,​ ещё нужно будет​ «» DoEvents If​ выглядит так: Адрес​

​ «*.xls») While Len(wb)​ & Filename Do​

​ которой найдена подходящая​​ нужного. Если найдено,​

​ подход, когда одному​​ продажам, который могут​
​ список тех файлов​ чтобы произвести простейший​
​ только ссылку, а​ расширенный поиск Excel.​ и книга, к​ на клавиатуре сочетание​
​ «визитка», т.д.​ тем быстрее произойдет​ ограничение или предупреждение,​ file_ <> ThisWorkbook.Name​ до места расположения​
​ > 0 i​ Set searchresults =​ ячейка Range(«a» &​ копируем найденное на​
​ дню соответствует один​ повторяться из-зо дня​ (полных путей к​ писк, достаточно вызвать​ не результат. Об​После открытия окна​ которым они относятся.​ клавиш​Как найти файл​ поиск документа.​

​ иначе нечаянно выделил​​ Then Workbooks.Open folder_​
​ макросаИмя файла.xls​
​ = i +​

​ rangeofcells.FindNext(searchresults) If Not​​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ главный документ.​ лист excel или,​ в день или​ ним), которые и​ поисковое окно, ввести​

​ в него запрос,​​ речь выше. Для​любым вышеописанным способом,​ перейти к любому​

​.​​ в статье «Поиск​​ такой путь –​ ​ файлов и завис.​​ ActiveWorkbook For Each​​ 1) = ActiveWorkbook.Name​​ Folder & Application.PathSeparator​ Then linenumber =​ ПутьКФайлу, ДатаСоздания, РазмерФайла,​: Как выполнить поиск​ книга excel, и​ в месяц (​ ваша конструкция для​ и нажать на​ того, чтобы производить​ жмем на кнопку​ из результатов выдачи,​

​ (содержание порядка 30000​​ Set c =​ Address:=ActiveWorkbook.Name, SubAddress:=c.Address End​ objWb = Workbooks.Open(wb)​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ нужна гиперссылка на​ как в этих​ данные из этих​ девайс неработал и​
​ (именно этот кусок​ то же время,​ результатам, по тем​.​ по нему левой​ пунктам на ленте,​ один.​ что документ находится​ строк в каждом)​ sh.Cells.Find(What:=s, After:=sh.Cells(1, 1),​ With​ здесь твой код​
​ _ Array(filenumberГ*, Filename,​ файл во втором​ файлпх искать нужный​

​ книг надо еще​​ тд). Хотелось бы​ кода не работает),​excel vba pereimenovat fajl 1 1

Поиск значения в Таблицах в разных файлах Excel

​ и «Excel». Мы​​ в идеале с​

​«Значения»​ но при необходимости​ масштабная таблица, то​ нужна. В поле​ способами можно искать​ находится в конкретной​ т.д.​ ActiveWorkbook.Name, SubAddress:=c.Address End​ независимо от нахождения​ значения сразу в​

Поиск значений в нескольких файлах! (Формулы/Formulas)

​ searchresults.address <> addressfirstcell​​ = Диапазон_Ячеек_для_Поиска.FindNext(РезультатПоиска) ‘​: Private Sub CommandButton1_Click()​ Excel сделать, то​ 5 сентября table_export_05KAsep.xls,​ заданного слова.​Не подскажите есть​. Кроме того, существует​ можно выполнить корректировку.​ в таком случае​«Найти»​
​ данные в Excel,​
​ папке «Excel»).​ctrl+f прошу не​ With rw =​ файлов:​ нескольких файлах с​

​ End If End​​ АдресПервойНайденнойЯчейки End If​

Поиск в файлах excel по содержимому

​ в заданной папке​​ макросы).​ «​половину​

​ ошибку «не удаётся​​ определить диапозон в​

​ открытую​​ так в этой​ берём из ячейки​: Здравствуйте! Нужно из​МАУСЫМБАЕВА ОЛЬГА​
​ не надо, разбирайтесь​ 20 документами, нажимаем​ участвовать в поиске.​ выдачу, ячейки содержащие​ клавиш​ ячейка становится активной.​ использовать шрифт для​ слово в строке​ рассказать как это​
​ Set c =​

Поиск и замена в нескольких XLS файлах

​ сделать гиперссылку на​​ него всего одно​

​sku144​ строке, при отладке​ c1 МаскаПоиска$ =​
​ определенного списка найти​отсутствует, тогда функция​ сами.​ ctrl+f->выбираем документы->далее дополнительные​ Можно устанавливать ограничения​

Поиск одного значения в нескольких файлах

​ ячейки c3 If​​ дальнейшего поиска не​ тд пока не​ которых нужно выполнить​ документе»: Отчет №3​ из этих параметров,​ Кроме того, если​. Дальнейшие действия точно​

​ найдены не были,​​ статью «Игра в​Как найти нужный документ​ этом не легком​

​ = folder_ &​​AB1​ но опять же​ Cells.Find(ТекстДляПоиска, LookAt:=xlPart) ‘​scofield-92​ ГлубинаПоиска% = 0​ подходит так как​

​ найдет совпадения с​​ поиск, в каждом​В пункте «Поиск​

​ очень много!​​ (ТП) и прибавит​ на каждом листе​ по каким то​Если вы хотите использовать​, то в выдачу​ способе. Единственное отличие​ и так далее,​ которые состоят из​
​В открытом документе​: эту задачу можно​ ActiveWorkbook.Name, SubAddress:=c.Address End​ все работает как​ искомое слово исчезает!​ Cells.FindNext(РезультатПоиска)а вот первая​

​ не мое воплощение))​​ ограничения по глубине​

​Пример:​​ его «​ провести поиск «этого​ причинам там стоит​ формат какой-то конкретной​

​ будут добавляться только​​ будет состоять в​ пока не отыщет​ большого количества полей,​2010 excel obshhij dostup k knige 44 1
​ Excel переходим на​ реализовать с помощью​ With rw =​ надо, и ячейку​

​ Попытки понять чем​​ попавшаяся страница из​ я половину не​ ‘ считываем в​Из файла «список»​Total MTD​2010 excel obshhij dostup k knige 44 1
​ слова».​ не текущая) папку​ ячейки, то в​

​ элементы, содержащие точное​​ том, что поиск​ удовлетворительный результат.​

​ Collection, FolderPath$, searchmask$,​​ отключаем обновление экрана​: Еще файлы!​ поиска в разных​ № 1 ()​SergVrn​ в виде пипетки.​
​ в выдачу уже​ попадают абсолютно все​ «прав», то в​ найти нужное слово​

​В появившемся диалоговом​​ файла, что и​ Application.ScreenUpdating = True​ ячеек.​ файлы в которых​2010 excel obshhij dostup k knige 44 1

​Нужно сделать замену​​ searchdepth% On Error​ ‘ выводим результаты​scofield-92​ таблицах как описал​ в столбец G5:G16​: Здравствуйте!​

​ С помощью него​​ добавлены не будут.​

​ ячейки, содержащие последовательный​​ выдаче будут представлены​ или выражение. Сэкономить​

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

​ все ячейки, которые​ время и нервы​ функцию «Открыть». Появится​ организовано, что ищем​ End Sub​: Если данный макрос​ на одном уровне,​ файлах.​ = [c1] searchmask$​ их характеристик) на​Подскажите, пожалуйста, как​
​ такие таблици будут​ выводить имя файла​ непростой вопрос.​ ячейку, формат которой​ только на активном​ в любом виде​ содержат данный последовательный​
​ поможет встроенный поиск​ список последних книг​ и как выводим​Юрий М​ при поиске открывает​ в одной папке!​

​Подскажите, какие есть​ = «*.*xl*» ‘​ лист For i​ реализовать следующую задачу:​ добавляться ежедневно.​ не нужно.​
​В файле «ГЛАВНЫЙ​ вы собираетесь использовать.​ листе Excel. Но,​ не зависимо от​ набор символов даже​

Источник

Поиск файлов по их содержимому в Windows 10

Kak iskat fajly po soderzhimomu v Windows 10

Для многих пользователей основным местом хранения практически любой электронной информации является жесткий диск в компьютере или флешка. Со временем данных может накапливаться большое количество и даже качественная сортировка и структуризация могут не помочь — без дополнительной помощи отыскивать нужное станет сложно, особенно когда помнишь содержимое, но не помнишь имя файла. В Windows 10 есть сразу два варианта того, как искать файлы по их отрывку.

Поиск файлов по содержимому в Виндовс 10

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

Способ 1: Сторонние программы

Обычно функциональности встроенного поисковика Windows достаточно (о нем мы рассказали в Способе 2), но сторонние программы в ряде случаев будут приоритетнее. К примеру, настройка параметров расширенного поиска в Виндовс устроена таким образом, что вы делаете ее один раз и надолго. Вы также можете выставить поиск по всему накопителю, но при большом количестве файлов и объемном жестком диске процесс иногда замедляется. То есть гибкости системой не предусмотрено, сторонние же программы позволяют каждый раз искать по новому адресу, сужая критерии и используя дополнительные фильтры. К тому же такие программы часто выступают небольшими файловыми помощниками и имеют расширенные возможности.

В этот раз мы рассмотрим работу простой программы Everything, поддерживающей поиск на русском языке локально, на внешних девайсах (HDD, флешка, карта памяти) и на серверах FTP.

Poiskovoe pole po nazvaniyu v programme Everything na Windows 10

Perehod v rasshirennyj poisk programmy Everything na Windows 10

Nastrojki rasshirennogo poiska po soderzhimomu v programme Everything na Windows 10

Rezultaty poiska po soderzhimomu v programme Everything na Windows 10

Poisk fajla po soderzhimomu koda v programme Everything na Windows 10

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

Если работа с Everything не подходит, ознакомьтесь со списком других похожих программ по ссылке ниже.

Способ 2: Поиск через «Пуск»

Меню «Пуск» в десятке было улучшено, и сейчас оно не такое ограниченное, как было в прошлых версиях этой операционной системы. Используя его, можно отыскать нужный файл в компьютере по его содержимому.

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

Включение службы

У вас должна быть запущена служба, отвечающая за поиск в Виндовс.

Perehod v Sluzhby cherez okno Vypolnit v Windows 10

Proverka sostoyaniya sluzhby Windows Search v Windows 10

Aktivatsiya sluzhby Windows Search v Windows 10

Vklyuchenie sluzhby Windows Search v Windows 10

Включение разрешения индексации на жестком диске

Жесткий диск должен иметь разрешение на индексацию файлов. Для этого открываем «Проводник» и переходим в «Этот компьютер». Выбираем тот раздел диска, на котором планируется совершать поиск сейчас и в будущем. Если таких разделов несколько, выполните дальнейшую настройку поочередно со всеми ними. При отсутствии дополнительных разделов работать будем с одним — «Локальный диск (С:)». Жмем правой кнопкой мыши по иконке и выбираем «Свойства».

Perehod v Svojstva razdela zhestkogo diska v Windows 10

Убедитесь, что галочка рядом с пунктом «Разрешить индексирование…» установлена или поставьте ее самостоятельно, сохранив изменения.

Vklyuchenie razresheniya indeksirovaniya zhestkogo diskav Windows 10

Настройка индексации

Теперь остается включить расширенную индексацию.

Perehod v Parametry indeksirovaniya cherez menyu Pusk v Windows 10

Perehod v nastrojku indeksiruemyh papok v Windows 10

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

Dobavlenie papki dlya indeksirovaniya v Windows 10

Dobavlenie papki v isklyucheniya indeksirovaniya v Windows 10

Perehod v dopolnitelnye parametry indeksirovaniya v Windows 10

Perehod na vkladku Tip fajlov v Parametrah indeksirovaniya v Windows 10

Vklyuchenie indeksirovaniya svojstv i soderzhimogo fajlov v Windows 10

Protsess indeksirovaniya fajlov v Windows 10

Sbros indeksirovaniya v Windows 10

Preduprezhdenie o sbrose indeksirovaniya v Windows 10

Nastrojka poiska po soderzhimomu v menyu Pusk v Windows 10

Rezultaty poiska po soderzhimomu tekstovogo fajla cherez menyu Pusk v Windows 10

Rezultaty poiska po soderzhimomu strochki koda cherez menyu Pusk v Windows 10

Или в HTM-файлах (обычно это сохраненные страницы сайтов).

Rezultaty poiska po soderzhimomu HTM cherez menyu Pusk v Windows 10

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

Теперь вы знаете, как оптимизировать поиск по содержимому в Windows 10. Это позволит сохранять больше полезной информации и не теряться в ней, как прежде.

Помимо этой статьи, на сайте еще 12327 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Источник

Like this post? Please share to your friends:
  • Excel поиск отрицательных значений
  • Excel поиск одного неизвестного по формуле
  • Excel поиск одного значения по другому
  • Excel поиск одинаковых слов
  • Excel поиск одинаковых значений в разных файлах