Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
5 / 5 / 3
Регистрация: 15.01.2017
Сообщений: 690
1

Получить путь к файлу?

23.08.2019, 18:04. Показов 4908. Ответов 6
Метки vba (Все метки)

Author24 — интернет-сервис помощи студентам
Как из `Public Sub Main(pathMainFolder As String, criteriaFind As String) AS strig` получить путь к файлу?

Цель: отдать процедуре "путь к папке" где искать и "имя файла", который требуется найти, в результате получить полный путь к найденному файлу.
До конца не понимаю как сделать... Выдаёт ошибки...

Может есть другие способы?


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Sub Main(pathMainFolder As String, criteriaFind As String) AS strig
    Dim fso As Object
    Dim result As String
    Set fso = CreateObject("Scripting.FileSystemObject")
 
    ' FindFileInFolder fso.GetFolder("C:\Program Files\Far"), "*adm*.*" 
    result = FindFolderFile(fso.GetFolder(pathMainFolder), criteriaFind)
End Sub
 
'  Найти файл(папку)
Private Function FindFolderFile(ff As Object, criteriaFind As String) As String
    Dim fo As Object
    Dim f As Object
 
    For Each f In ff.Files
        ' If f.Name Like criteriaFind Then Debug.Print f.path
        If f.Name Like criteriaFind Then FindFolderFile
    Next f
    For Each fo In ff.SubFolders
        FindFolderFile fo, sFile
    Next fo
End Function
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.08.2019, 18:04
Ответы с готовыми решениями:

Необходимо получить путь к файлу через стандартные диалоги
Вопрос такой: необходимо получить путь к файлу через стандартные диалоги. К примеру, вызывается...

Как получить ПОЛНЫЙ ПУТЬ к файлу из сохраненной на листе гиперссылки?
Добрый день. У меня есть книга эксель, в которой на отдельном листе собраны гиперссылки на другие...

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

Макрос в OpenOffice Calc, как получить полный путь к файлу?
Здравствуйте! Делаю макрос в OO Calc , вывожу полный путь к файлу MsgBox ThisComponent.Location...

6
Заблокирован
23.08.2019, 18:44 2
Лучший ответ Сообщение было отмечено Soft17 как решение

Решение

Soft17,
sub не может быть AS Strig , это вам не функция.
1
6982 / 2883 / 552
Регистрация: 19.10.2012
Сообщений: 8,773
23.08.2019, 18:53 3
Лучший ответ Сообщение было отмечено Soft17 как решение

Решение

Да просто делаете переменную публичной в пределах модуля например, ну или можно передавать её из вызывающей...
Я сделал публичной, ну и ещё несколько правок произвёл (тестил на телеграммном мусоре):
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
Option Explicit
 
Dim result As String
 
Sub tt()
    Call Main("c:\Users\Igor\Downloads\Telegram Desktop\", "*193*")
    MsgBox result
End Sub
 
Public Sub Main(pathMainFolder As String, criteriaFind As String)
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    ' FindFileInFolder fso.GetFolder("C:\Program Files\Far"), "*adm*.*"
    result = FindFolderFile(fso.GetFolder(pathMainFolder), criteriaFind)
End Sub
 
'  Найти файл(папку)
Private Function FindFolderFile(ff As Object, criteriaFind As String) As String
    Dim fo As Object, f As Object
 
    For Each f In ff.Files
        ' If f.Name Like criteriaFind Then Debug.Print f.path
        If f.Name Like criteriaFind Then FindFolderFile = f.Path: Exit Function
    Next f
    For Each fo In ff.SubFolders
        FindFolderFile fo, criteriaFind
    Next fo
End Function
1
Эксперт NIX
3281 / 892 / 197
Регистрация: 14.01.2013
Сообщений: 4,457
23.08.2019, 19:06 4
А чем функция Dir() не угодила?
1
5 / 5 / 3
Регистрация: 15.01.2017
Сообщений: 690
23.08.2019, 20:28  [ТС] 5
Цитата Сообщение от Kubuntovod Посмотреть сообщение
А чем функция Dir() не угодила?
Не могли бы вы более подробнее описать. что имели в виду...
0
Эксперт NIX
3281 / 892 / 197
Регистрация: 14.01.2013
Сообщений: 4,457
24.08.2019, 07:03 6
Лучший ответ Сообщение было отмечено Soft17 как решение

Решение

Цитата Сообщение от Soft17 Посмотреть сообщение
Не могли бы вы более подробнее описать. что имели в виду...
В справке VBA почитайте описание функции Dir. Что-то типа такого в итоге получится:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
' Find all .csv files in directory "C:\DataFiles\"
Dim fList As String
Dim fName As String
fName = Dir( "C:\DataFiles\*.csv" )
' The variable fName now contains the name of the first .csv file within "C:\DataFiles\".
Do While fName <> ""
' Store the current file in the string fList.
fList = fList & vbNewLine & fName
' Get the next .csv file within "C:\DataFiles\".
fName = Dir()
' The variable fName now contains the name of the next .csv file within "C:\DataFiles\".
Loop
' Display the list of .csv files in a message box.
MsgBox( "List of .csv Files:" & fList )
1
Заблокирован
24.08.2019, 08:01 7
Kubuntovod, с помощью Dir проблематично читать содержимое вложенных папок, рекурсия будет намного сложнее.
1
24.08.2019, 08:01
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.08.2019, 08:01
Помогаю со студенческими работами здесь

Путь к файлу
в макросе MS Word нужно получить путь и имя файла, выбранного в диалоговом окне &quot;Открыть файл&quot;.....

VBA путь к файлу
Задал путь к файлу txt в VBA.Выдаёт ошибку подскажите,что не так path =...

Путь к файлу по индексу
Привет Форумяне! Подскажите пожалуйста как возможно обратится к файлу (png) как к номеру из списка...

Путь к открытому exe-файлу
Приветствую всех, форумчане! Помогите решить простую задачку. Открыты: исходный файл Excel с кодом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как проверить, что файл НЕ существует с помощью Bash
bytestream 25.01.2025
В системном администрировании проверка существования файлов является фундаментальной операцией, особенно при написании скриптов на Bash. Правильная обработка ситуаций, когда файл отсутствует,. . .
Как проверить, что строка пустая, неопределена или null в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript разработчики регулярно сталкиваются с необходимостью проверки строковых значений на различные состояния. Валидация данных является критически важным. . .
Как проверить существование ключа в объекте или массиве в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript программисты постоянно сталкиваются с необходимостью работать с объектами и массивами. Эти структуры данных являются фундаментальными элементами языка и. . .
Как создать ArrayList из массива (array) в Java
bytestream 25.01.2025
При разработке программного обеспечения на языке Java программисты часто сталкиваются с необходимостью эффективного управления наборами данных. Массивы и ArrayList являются двумя фундаментальными. . .
Как сгенерировать случайные целые числа (int) в указанном диапазоне в Java
bytestream 25.01.2025
В программировании генерация случайных чисел является важнейшим инструментом для решения множества практических задач. От создания игровых механик до реализации алгоритмов машинного обучения, от. . .
Как сделать, чтобы grep выводил строки до и после найденной
hw_wired 25.01.2025
Утилита grep стала незаменимым инструментом для поиска и фильтрации информации в Unix-подобных операционных системах. Эта командная утилита позволяет осуществлять поиск строк, соответствующих. . .
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru