Como verificar se existe um caminho relativo no VBA

1

Estou tentando verificar se existe um diretório ou não.

Eu tentei o seguinte ...

Private Sub Workbook_Open()
 If ReportFolderStatus("\VBAProjectFiles") Then
        MsgBox "Folder exists!"
    Else
        MsgBox "Folder does not exist!"
    End If
End Sub

Function ReportFolderStatus(fldr) As Boolean
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   If (fso.FolderExists(fldr)) Then
      ReportFolderStatus = True
   Else
      ReportFolderStatus = False
   End If
End Function

mas eu sempre recebo "Pasta não existe".

A estrutura das pastas:

--folder#1
 |--folder#2
    |--VBAProjectFiles
    |excel.xlsm
    
por Pascal C. 12.09.2016 / 14:01

1 resposta

2

Eu acredito que você quer usar

ThisWorkbook.Path

Isso lhe dará o caminho relativo

Se isso não funcionar, tente ActiveWorkbook.Path ou App.Path

If Dir(ThisWorkbook.Path & "\VBAProjectFiles", vbDirectory) = "" Then

Resposta original sobre o caminho absoluto (a pergunta OP mudou de caminho absoluto para caminho relativo, mas acho que isso continua sendo útil)

Pode ser melhor colocar o caminho completo

if FileExist("c:\VBAProjectFiles\myfile.xml") Then

No entanto, apesar de verificar FileExist , parece que você está realmente procurando pela existência de um diretório. Você pode usar:

If Dir("C:\VBAProjectFiles", vbDirectory) = "" Then

ou

If Len(Dir("C:\VBAProjectFiles", vbDirectory)) = 0 Then

ou

If GetAttr("C:\VBAProjectFiles") And vbDirectory) = vbDirectory then
    
por 12.09.2016 / 14:07

Tags