Note: The other languages of the website are Google-translated. Back to English

 Як перевірити, чи існує папка і якщо її не створити?

Ви коли-небудь пробували перевірити, чи існує папка на аркуші Excel? У цій статті я розповім про перевірку того, чи існує папка у вказаному шляху, якщо ні, то папка буде створена автоматично під цим шляхом.

Перевірте, чи існує папка у певному шляху до файлу з кодом VBA

Створіть папку, якщо вона не існує у певному шляху до файлу з кодом VBA


стрілка синя права міхур Перевірте, чи існує папка у певному шляху до файлу з кодом VBA

Наступний код VBA може допомогти вам перевірити, чи існує папка у певному шляху до файлу, будь-ласка, зробіть так:

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний код у Модулі Вікно

Код VBA: Перевірте, чи існує папка в певному шляху до файлу:

Sub Test_Folder_Exist_With_Dir()
'Updateby Extendoffice
    Dim sFolderPath As String
    sFolderPath = "C:\Users\DT168\Desktop\Test folder"
    If Right(sFolderPath, 1) <> "\" Then
        sFolderPath = sFolderPath & "\"
    End If
    If Dir(sFolderPath, vbDirectory) <> vbNullString Then
        MsgBox "Folder exist", vbInformation, "Kutools for Excel"
    Else
        MsgBox "Folder doesn't exist", vbInformation, "Kutools for Excel"
    End If
End Sub

Примітка: У наведеному вище коді вам слід змінити шлях та назву папки C: \ Users \ DT168 \ Desktop \ Test папка до ваших необхідних.

3. Потім натисніть F5 ключ для запуску цього коду, ви отримаєте такі результати:

папка doc існує 1


стрілка синя права міхур Створіть папку, якщо вона не існує у певному шляху до файлу з кодом VBA

Перевірте, чи існує папка у шляху до файлу, якщо ні, щоб створити її за цим певним шляхом до файлу, наступний код VBA може допомогти вам закінчити цю роботу.

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний код у Модулі Вікно

Код VBA: Створіть папку, якщо вона не існує у шляху до файлу:

Sub MakeMyFolder()
'Updateby Extendoffice
    Dim fdObj As Object
    Application.ScreenUpdating = False
    Set fdObj = CreateObject("Scripting.FileSystemObject")
    If fdObj.FolderExists("C:\Users\DT168\Desktop\Test folder") Then
        MsgBox "Found it.", vbInformation, "Kutools for Excel"
    Else
        fdObj.CreateFolder ("C:\Users\DT168\Desktop\Test folder")
        MsgBox "It has been created.", vbInformation, "Kutools for Excel"
    End If
    Application.ScreenUpdating = True
End Sub

примітки: У наведеному вище коді вам слід змінити шлях та назву папки C: \ Users \ DT168 \ Desktop \ Test папка до ваших необхідних.

3. Вставивши код, натисніть F5 ключ для його запуску:

(1.) Якщо папка існує, з’явиться вікно запиту, як показано на екрані:

папка doc існує 2

(2.) Якщо папка не існує, вона буде створена за вказаним шляхом відразу, і з'явиться підказка з нагадуванням про те, що папку створено, див. Знімок екрана:

папка doc існує 3


Найкращі інструменти для підвищення продуктивності офісу

Kutools for Excel Вирішує більшість ваших проблем і підвищує вашу продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (12)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Він відображає помилку @ fdObj.CreateFolder ("C:\Users\DT168\Desktop\Test folder")
Цей коментар був мінімізований модератором на сайті
Привіт, Алок,
Наведені вище коди добре працюють у моїй книзі Excel, шлях «C:\Users\DT168\Desktop\Test folder» — це шлях до мого комп’ютера, вам слід змінити шлях до папки на свій.
Дякую!
Цей коментар був мінімізований модератором на сайті
Чудова стаття. Саме те, що я шукав :)
Цей коментар був мінімізований модератором на сайті
Це дійсно корисно! Спасибі!
Цей коментар був мінімізований модератором на сайті
Дякую, чоловіче, робота чудова
Цей коментар був мінімізований модератором на сайті
Супер дякую!
Цей коментар був мінімізований модератором на сайті
Я запускаю цей макрос, але на етапі створення папки процес сповільнюється.

можеш мені допомогти????


«Comprobar si la carpeta existe».

Dim ruta As String
Dim libro As String

M = ActiveWorkbook.Name

ruta = Application.Workbooks(M).Sheets("Diccionario").Діапазон("B5").Value

Якщо Right(ruta, 1) <> "\" Тоді
ruta = ruta & "\"
End If
Якщо Dir(ruta, vbDirectory) <> vbNullString Тоді
MsgBox "Папка існує, будь ласка, продовжуйте"
Ще
MsgBox "Папка не існує"
End If

'Crea la carpeta que necesitas

Dim fdObj як об’єкт
Приглушити папку як рядок

папка = Application.Workbooks(M).Sheets("Dicionario").Range("B5").Value (ось куди падає процес)

Application.ScreenUpdating = Невірний
Встановити fdObj = CreateObject("Scripting.FileSystemObject")
Якщо fdObj.FolderExists(папка) Тоді
MsgBox "Знайшов, будь ласка, продовжуйте."
Ще
fdObj.CreateFolder (папка)
MsgBox "Це створено."
End If
Application.ScreenUpdating = True
Цей коментар був мінімізований модератором на сайті
Привіт! Це чудово працює, чи є шанс, що ім’я папки, яке використовується під час перевірки, чи вже існує папка, походить із клітинки в електронній таблиці, скажімо, A2??

Я використовую електронну таблицю-шаблон, яка автоматично оновлюється з іншого джерела, тому клітинка A2 постійно змінюється, що вимагає створення нових папок з тим самим ім’ям.

Крім того, чи може бути така команда, яка виконує наведене вище, але також зберігає активну електронну таблицю у знайденій / створеній папці?

Є надія? TIA
Цей коментар був мінімізований модератором на сайті
excelente, me sirvió mucho el Objeto. Uso para carpetas como archivos. дуже дякую
Цей коментар був мінімізований модератором на сайті
Як створити папку на робочому столі за допомогою vba щоразу, коли відкривається книга Excel, ігноруйте, якщо є.
Повідомлення, якщо створити нову папку, без звуку, якщо папка існує.


Приватна додаткова робоча книга_Open()

Dim COB як варіант
Dim FolderName як рядок, FolderExists як рядок
FolderName = "C:\Users\AAAAA\Desktop\A New Folder" '---->Змінити назву папки, щоб вона відповідала. Змініть AAAAA відповідно до ваших вимог.
FolderExists = Dir(Ім'я папки, vbDirectory)

Application.ScreenUpdating = Невірний

Якщо FolderExists = vbNullString Тоді
MsgBox "Папка на робочому столі не існує. Створення нової папки зараз.", vbExclamation, "ІНФОРМАЦІЯ"
cOb = CreateObject("wscript.shell").specialfolders("Desktop") & "\" & "A New Folder" '--->Змінити ім'я папки відповідно до.
MkDir cOb
Інше: вихід із суб
End If

Application.ScreenUpdating = True

End Sub

Цей коментар був мінімізований модератором на сайті
Як створити папку на робочому столі за допомогою vba щоразу, коли відкривається книга Excel, ігноруйте, якщо є.
Повідомлення, якщо створити нову папку, без звуку, якщо папка існує.

Приватна додаткова робоча книга_Open()

Dim COB як варіант
Dim FolderName як рядок, FolderExists як рядок
Ім'я папки = "C:\Users\" & Environ("ім'я користувача") & "\Desktop\Моя папка\" '--->Змініть ім'я папки відповідно до.
FolderExists = Dir(Ім'я папки, vbDirectory)

Application.ScreenUpdating = Невірний

Якщо FolderExists = vbNullString Тоді
MsgBox "Папка на робочому столі не існує. Створення нової папки зараз.", vbExclamation, "ІНФОРМАЦІЯ"
cOb = CreateObject("wscript.shell").specialfolders("Desktop") & "\" & "Моя папка" '--->Змініть ім'я папки відповідно до.
MkDir cOb
Інше: вихід із суб
End If

Application.ScreenUpdating = True

End Sub
Цей коментар був мінімізований модератором на сайті
Buonasera,

Non conosco il Vs. sito e mi sono imbattuto per caso su questa pagina.
Ho letto quanto scritto sopra e se è possibile avrei bisogno del Vs. aiuto.
Mi occorrebbe una macro che in un percorso variabile ad un Host facente parte della stessa lan verifiche se è aperto un file exel dal nome variabile, and nel caso sia aperto chiuda il file e cancella tutto il contenuto della cartella compreso il file stesso.
Provo a spiegarmi meglio:
nel percorso:\\host01\Users\utente\Desktop\liste\Nome_Cognome_Gennaio\Operatore_16_Gennaio.xlsm
представлено файл excel під назвою: Operatore_16_Gennaio.xlsm

Il percorso non semper è lo stesso così come il nome del file excel. Інформаційний файл cambia solo під назвою Nome_Cognome,es: :\\host01\Users\utente\Desktop\liste\Tizio_Caio_Gennaio\Operatore_16_Gennaio.xlsm) відкрийте файл cambia solo number dell'operatore (Es: :\\host01\Users\utente \Desktop\liste\Sempronio_zeta_Gennaio\Operatore_15_Gennaio.xlsm.)

E' possibile avere una macro che fa quanto descritto sopra?

Ringrazio anticipatamente
There are no comments posted here yet

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL