Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

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

Ви коли-небудь пробували перевірити, чи існує папка на аркуші 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 для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

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

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    viriato74 · 5 months ago
    How to create folder in desktop with vba whenever the excel book is opened, if exist, ignore.
    Message if create new folder, silent if the folder exist.

    Private Sub Workbook_Open()

    Dim cOb As Variant
    Dim FolderName As String, FolderExists As String
    FolderName = "C:\Users\" & Environ("username") & "\Desktop\MyFolder\" '--->Change folder name to suit.
    FolderExists = Dir(FolderName, vbDirectory)

    Application.ScreenUpdating = False

    If FolderExists = vbNullString Then
    MsgBox "The desktop folder doesn't exist. Creating a new folder now.", vbExclamation, "INFORMATION"
    cOb = CreateObject("wscript.shell").specialfolders("Desktop") & "\" & "MyFolder" '--->Change folder name to suit.
    MkDir cOb
    Else: Exit Sub
    End If

    Application.ScreenUpdating = True

    End Sub
  • To post as a guest, your comment is unpublished.
    Joao · 5 months ago
    How to create folder in desktop with vba whenever the excel book is opened, if exist, ignore.
    Message if create new folder, silent if the folder exist.


    Private Sub Workbook_Open()

    Dim cOb As Variant
    Dim FolderName As String, FolderExists As String
    FolderName = "C:\Users\AAAAA\Desktop\A New Folder" '---->Change folder name to suit. Change the AAAAA to your requirement.
    FolderExists = Dir(FolderName, vbDirectory)

    Application.ScreenUpdating = False

    If FolderExists = vbNullString Then
    MsgBox "The desktop folder doesn't exist. Creating a new folder now.", vbExclamation, "INFORMATION"
    cOb = CreateObject("wscript.shell").specialfolders("Desktop") & "\" & "A New Folder" '--->Change folder name to suit.
    MkDir cOb
    Else: Exit Sub
    End If

    Application.ScreenUpdating = True

    End Sub

  • To post as a guest, your comment is unpublished.
    German · 2 years ago
    excelente, me sirvió mucho el Objeto. Uso para carpetas como archivos. Muchas gracias
  • To post as a guest, your comment is unpublished.
    Mike · 2 years ago
    Hi, This works great, would there be any chance that the folder name used when checking if a folder already exists is derived from a cell within the spreadsheet, say A2??

    I use a template spreadsheet which is updated automatically from another source, so cell A2 constantly changes which requires new folders being created in the same name.

    Also, could there be such a command which does the above but also saves the active spreadsheet in the found / created folder?

    Any hope? TIA
  • To post as a guest, your comment is unpublished.
    felipe · 2 years ago
    I'm running this macro, but in the step to create the folder, the process goes down.

    can you help me????


    'Comprobar si la carpeta existe

    Dim ruta As String
    Dim libro As String

    M = ActiveWorkbook.Name

    ruta = Application.Workbooks(M).Sheets("Diccionario").Range("B5").Value

    If Right(ruta, 1) <> "\" Then
    ruta = ruta & "\"
    End If
    If Dir(ruta, vbDirectory) <> vbNullString Then
    MsgBox "Folder exist, please continue"
    Else
    MsgBox "Folder doesn't exist"
    End If

    'Crea la carpeta que necesitas

    Dim fdObj As Object
    Dim folder As String

    folder = Application.Workbooks(M).Sheets("Dicionario").Range("B5").Value (here is where the process falls)

    Application.ScreenUpdating = False
    Set fdObj = CreateObject("Scripting.FileSystemObject")
    If fdObj.FolderExists(folder) Then
    MsgBox "Found it, pleace continue."
    Else
    fdObj.CreateFolder (folder)
    MsgBox "It has been created."
    End If
    Application.ScreenUpdating = True
  • To post as a guest, your comment is unpublished.
    Kyffer · 3 years ago
    Super Thanks!
  • To post as a guest, your comment is unpublished.
    Roger · 3 years ago
    Thanks Man, work amazing
  • To post as a guest, your comment is unpublished.
    Bengbeng · 3 years ago
    This is really helpful! thanks!
  • To post as a guest, your comment is unpublished.
    Kenneth · 3 years ago
    Great article. Just what I was looking for :)
  • To post as a guest, your comment is unpublished.
    Alok · 4 years ago
    It's reflecting an error @ fdObj.CreateFolder ("C:\Users\DT168\Desktop\Test folder")
    • To post as a guest, your comment is unpublished.
      skyyang · 4 years ago
      Hello, Alok,
      The above codes works well in my Excel workbook, the "C:\Users\DT168\Desktop\Test folder" path is my computer path, you should change the folder path to your own.
      Thank you!