|
TSM Пользователь Сообщений: 14 |
Может кто-то знает, как проверить существует файл или нет? Is This the World We Created? |
|
Sub Макрос1() |
|
|
TSM Пользователь Сообщений: 14 |
Спасибо, всё работает. Но столкнулся с проблемой, если сервер, на которм лежат фотографии отключен, в этом случае идёт длительная проверка, а потом ошибка. Можно ли также проверять наличие сервера и если он не найден перенаправлять на внутренний диск компа? Is This the World We Created? |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Sub Check_Disk() Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
TSM Пользователь Сообщений: 14 |
Не работает корректно. Когда диск подключен, всё OK. Но стоит отключиться от сети и следует длительная проверка, потом выскакивает сообщение Пробовал использовать номер ошибки, но что-то видимо не так делаю. Код ниже: Sub Check_Disk() Is This the World We Created? |
|
New Пользователь Сообщений: 4582 |
Предлагаю такой вариант Sub Check_Disk() |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Странно…У меня все работает. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
New Пользователь Сообщений: 4582 |
На самом деле инструкцию On Error Resume Next надо выше поднять на одну строку |
|
TSM Пользователь Сообщений: 14 |
#9 24.12.2008 19:35:11 Всё заработало! Спасибо всем за участие в решении проблемы. it’s a kind of magic Is This the World We Created? |
Вы можете использовать функцию Dir с параметром vbHidden
| Visual Basic | ||
|
Это ДОБАВИТ выдачу скрытых файлов к обычным. То есть, если у вас есть файл IterPara.txt и на нем дополнительных атрибутов не стоит, он будет выдан. Если он скрытый — тоже выдан. А если на нем стоит, например, атрибут «системный» и не стоит «скрытый» — не будет. Ну и в случае, если такого файла нет.
Если же надо выдать сообщение тогда и только тогда, когда файл имеет атрибут «скрытый», лучше воспользоваться FSO. Тут перебор файлов в каталоге, но можно и отдельный проверять.
| Visual Basic | ||
|
Как проверить, существует ли файл в определенной папке?
Предположим, у вас есть папка, содержащая несколько файлов, и теперь вы хотите определить, существует ли в этой папке определенный файл из Excel. В этой статье я представлю вам быстрый способ детально проверить, существует ли файл в определенной папке с помощью Excel.
Проверьте, существует ли файл в определенной папке с кодом VBA
Проверьте, существует ли файл в определенной папке с кодом VBA
Чтобы проверить, существует ли файл в определенной папке или нет на листе Excel, вы можете применить следующий код VBA, сделайте следующее:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.
Код VBA: проверьте, существует ли файл в определенной папке:
Sub Test_File_Exist_With_Dir()
'Updateby Extendoffice
Application.ScreenUpdating = False
Dim FilePath As String
FilePath = ""
On Error Resume Next
FilePath = Dir("C:UsersDT168DesktopTest folderBook2.xlsx")
On Error GoTo 0
If FilePath = "" Then
MsgBox "File doesn't exist", vbInformation, "Kutools for Excel"
Else
MsgBox "File exist", vbInformation, "Kutools for Excel"
End If
Application.ScreenUpdating = False
End Sub
Примечание: В приведенном выше коде вы должны изменить путь и имя файла C: Users DT168 Desktop Test folder Book2.xlsx « к вашим потребностям.
3. После вставки кода нажмите F5 ключ для запуска этого кода:
(1.) Если файл существует, вы получите следующий снимок экрана:
(2.) Если файл не существует, вы получите следующее предупреждение:
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (3)
Оценок пока нет. Оцените первым!
|
Проверка существования файла в папке. |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Получение списка файлов в указанной папке с помощью кода VBA Excel. Коллекция Files объекта Folder, возвращенного методом FileSystemObject.GetFolder.
Коллекция Files объекта Folder
Для получения списка файлов в указанной папке используется свойство Files объекта Folder. Объект Folder в VBA Excel возвращается методом GetFolder объекта FileSystemObject по полному имени папки в качестве аргумента.
Если в указанной папке нет файлов, применение свойства Folder.Files приведет к возникновению ошибки. Для корректного завершения программы используйте обработчик ошибок или условие, проверяющее наличие файлов в папке.
Получение списка файлов в папке
Пример 1
Код VBA Excel для получения списка файлов в указанной папке и записи полных имен файлов в массив (с поздней привязкой объектов к переменным):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Sub Primer1() Dim fso, myPath, myFolder, myFile, myFiles(), i ‘Записываем в переменную myPath полное имя папки myPath = «C:DATAТекущая папка» ‘Создаем новый экземпляр FileSystemObject Set fso = CreateObject(«Scripting.FileSystemObject») ‘Присваиваем переменной myFolder ссылку на объект Folder Set myFolder = fso.GetFolder(myPath) ‘Проверяем, есть ли файлы в папке myFolder If myFolder.Files.Count = 0 Then MsgBox «В папке «» & myPath & «» файлов нет» Exit Sub End If ‘Задаем массиву размерность ReDim myFiles(1 To myFolder.Files.Count) ‘Загружаем в массив полные имена файлов For Each myFile In myFolder.Files i = i + 1 myFiles(i) = myFile.Path Next ‘Просматриваем первый элемент массива MsgBox myFiles(1) End Sub |
Используемые переменные:
- fso – ссылка на экземпляр объекта FileSystemObject;
- myPath – полное имя папки;
- myFolder – ссылка на объект Folder (папка);
- myFile – ссылка на один объект File из коллекции myFolder.Files;
- myFiles() – массив для записи имен файлов;
- i – счетчик элементов массива.
Пример 2
Получение списка файлов в указанной папке и запись имен файлов в ячейки первого столбца рабочего листа Excel (с ранней привязкой объектов к переменным):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub Primer2() Dim myPath, myFolder As Folder, myFile As File, i ‘Записываем в переменную myPath полное имя папки myPath = «C:DATAТекущая папка» ‘Создаем новый экземпляр FileSystemObject Dim fso As New FileSystemObject ‘Присваиваем переменной myFolder ссылку на объект Folder Set myFolder = fso.GetFolder(myPath) ‘Проверяем, есть ли файлы в папке myFolder If myFolder.Files.Count = 0 Then MsgBox «В папке «» & myPath & «» файлов нет» Exit Sub End If ‘Записываем имена файлов в первый столбец активного листа For Each myFile In myFolder.Files i = i + 1 Cells(i, 1) = myFile.Name Next End Sub |
Ранняя привязка позволяет использовать подсказки свойств и методов объектов при написании кода VBA Excel.
Как получить список папок до 3 уровней вложенности, смотрите в статье VBA Excel. Список папок.
Фразы для контекстного поиска: обход файлов.







