Родились сегодня:
Антонина


Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

672

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

325

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

278

Россия, Санкт-Петербург


ID: 325460

CradleA

Академик

211

Беларусь, Минск


ID: 401888

puporev

Профессор

140

Россия, Пермский край


ID: 400815

alexleonsm

6-й класс

130


ID: 137394

Megaloman

Мастер-Эксперт

120

Беларусь, Гомель


8.8.12

06.05.2021

JS: 2.8.16
CSS: 4.5.4
jQuery: 3.6.0
DataForLocalStorage: 2021-05-06 21:16:03-standard


Создание программ на языке Basic.

Администратор раздела: Андреенков Владимир (Академик)

Консультация онлайн # 159436

Раздел: Basic
Автор вопроса: Ципихович Эндрю
Дата: 02.02.2009, 23:23 Консультация закрыта
Поступило ответов: 1

Здравствуйте, подскажите пожалуйста, как осуществить поиск файла в определённой папке, по части имени файла при помощи ВБА. Заранее спасибо.

Ответ # 242829 от Megaloman
Здравствуйте, Ципихович Эндрю!
Вы не написали, что делать с найденными именами файлов, поэтому по своему разумению
в приложении привожу макрос на VBA для MS Excel, который решает поставленную задачу,
выводя имена найденных файлов в таблицу.
Предложенный способ HookEst в минифоруме находит только один файл.

Приложение:


Megaloman

Мастер-Эксперт
03.02.2009, 21:51
Мини-форум консультации # 159436
HookEst

1

= общий =    03.02.2009, 03:44

см функцию Dir
осуществляет поиск файлов по маске:

MsgBox Dir("c:\Windows\exp*")

для папок:
MsgBox Dir("c:\Win*", vbDirectory)

Тесленко Евгений Алексеевич

2

= общий =    03.02.2009, 22:29

to Megaloman.
Мнение.
Вы выложили вполне работоспособный код, в котором в качестве имен переменных используются "Path" и "Name".
Не стоит рекомендовать применение их в таком качестве, т.к. они, не являясь зарезервированными словами, используются как названия свойств.
Это не есть хороший тон, возможны проблемы в будущем. В таком виде -"sPath", "sName", проблем не будет.
С уважением.
Евгений.

HookEst

3

= общий =    04.02.2009, 02:20

Чтоб найти другие файлы, также соответствующие условиям поиск, нужно вызвать Dir без параметров.
например:

Код
...
Dim f As String
    f = Dir("C:\windows\system32\*fix*")
    While f <> ""
        MsgBox f
        f = Dir
    Wend
...
End Sub

выведет все файлы из "c:\windows\system32" в имени которых встречается "fix" (у меня это fixmapi.exe и loadfix.com)

q_id

Megaloman

Мастер-Эксперт

ID: 137394

4

= общий =    04.02.2009, 09:47

то Тесленко Евгений Алексеевич. Наверное насчёт хорошего тона Вы правы, но в приведенном контексте вроде бы всё корректно и код работоспособен. Вообще-то я таких вещей избегаю (лучше перестраховаться - заповедь бюрократа и программиста). Неплохо бы еще все переменные описать (Dim ...). Лет 20 назад в умной книге прочёл: кто начал программировать с бейсика - потерянный для программирования человек. А кто с Фортрана - недалеко от него ушел. Я начинал с Фортрана.... (VBA тогда еще не было) А еще заповедь - не исправляй правильно работающий код. smile

=====
Нет времени на медленные танцы

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

Лучшие эксперты раздела

Megaloman

Мастер-Эксперт

Рейтинг: 120

Sergey V. Gornostaev

Профессионал

Рейтинг: 2

Асмик Гаряка

Советник

Рейтинг: 0

SFResid

Мастер-Эксперт

Рейтинг: 0

Роман Селиверстов

Советник

Рейтинг: 0

solowey

Профессор

Рейтинг: 0