Note: The other languages of the website are Google-translated. Back to English
Log in  \/ 
x
or
x
Inscreva-se  \/ 
x

or

 Como verificar se existe uma pasta e caso não crie?

Você já tentou verificar se existe uma pasta ou não na planilha do Excel? Neste artigo, falarei sobre como verificar se existe uma pasta em um caminho especificado, caso contrário, a pasta será criada automaticamente sob o caminho.

Verifique se existe uma pasta em um caminho de arquivo específico com código VBA

Crie a pasta se ela não existir em um caminho de arquivo específico com o código VBA


seta azul bolha direita Verifique se existe uma pasta em um caminho de arquivo específico com código VBA

O seguinte código VBA pode ajudá-lo a verificar se existe uma pasta em um caminho de arquivo específico, faça o seguinte:

1. Segure o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole o seguinte código no Módulo Janela.

Código VBA: verifique se existe uma pasta em um caminho de arquivo específico:

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

Observação: No código acima, você deve alterar o caminho e o nome da pasta C: \ Users \ DT168 \ Desktop \ pasta de teste para o seu necessário.

3. Então aperte F5 chave para executar este código, você obterá os seguintes resultados:

pasta doc existe 1


seta azul bolha direita Crie a pasta se ela não existir em um caminho de arquivo específico com o código VBA

Verifique se existe uma pasta em um caminho de arquivo, caso contrário, para criá-la neste caminho de arquivo específico, o código VBA a seguir pode ajudá-lo a terminar este trabalho.

1. Segure o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole o seguinte código no Módulo Janela.

Código VBA: crie uma pasta se não existir em um caminho de arquivo:

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

Importante: No código acima, você deve alterar o caminho e o nome da pasta C: \ Users \ DT168 \ Desktop \ pasta de teste para o seu necessário.

3. Depois de colar o código, pressione F5 chave para executá-lo:

(1.) Se a pasta existir, uma caixa de prompt aparecerá como a seguinte captura de tela mostrada:

pasta doc existe 2

(2.) Se a pasta não existir, ela será criada no caminho específico de uma vez, e uma caixa de prompt aparecerá para lembrá-lo de que a pasta foi criada, veja a captura de tela:

pasta doc existe 3


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Super Formula Bar (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
officetab bottom
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 · 2 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 · 2 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 · 1 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 · 2 years ago
    Super Thanks!
  • To post as a guest, your comment is unpublished.
    Roger · 2 years ago
    Thanks Man, work amazing
  • To post as a guest, your comment is unpublished.
    Bengbeng · 2 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 · 3 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 · 3 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!