Avatar billede erikbop Nybegynder
29. november 2004 - 13:27 Der er 6 kommentarer og
2 løsninger

Opret mappe

Jeg har brug for at oprette en mappe gennem VBA. Den skal i al sin enkelhed kunne følgende:

Hvis Mappen "C:\Test" ikke eksisterer, så
Opret Mappen "C:\Test"
Avatar billede hugopedersen Nybegynder
29. november 2004 - 14:09 #1
Public Function fhpFolder_Create(strPath As String, strFolder As String) As Boolean
' -----------------------------------------------------------------------------------
' Purpose    : Opret en ny mappe på disk
' Parameters :
' Returns    : Boolean
' Created    : 03-26-02 HP
' Modified  :
' Remarks    :
' -----------------------------------------------------------------------------------
On Error GoTo Error_fhpFolder_Create
  Dim strBuildPath As String                                    'Complete path
  Dim fsObj                                                    'Filesystem object
  Set fsObj = CreateObject("Scripting.FileSystemObject")
  strBuildPath = fsObj.BuildPath(strPath, strFolder)            'Build the path
  fsObj.CreateFolder strBuildPath                              'Create the path
  If fhpFolder_Exists(strBuildPath) Then
    fhpFolder_Create = True
  Else
    fhpFolder_Create = False
  End If
 
Exit_fhpFolder_Create:
  Set fsObj = Nothing
  Exit Function

Error_fhpFolder_Create:
  Select Case Err.Number
    Case 58
    Case 2501
    Case 3021
    Case Else
      MsgBox Err.Number & ": " & Err.Description, vbOKOnly + vbCritical, "Error in procedure 'fhpFolder_Create'"
  End Select
  Resume Exit_fhpFolder_Create

End Function

Public Function fhpFolder_Exists(ByVal strFileName As String) As Boolean
' -----------------------------------------------------------------------------------
' Purpose    : Check om en folder findes på disk
' Parameters :
' Returns    : Boolean
' Created    : 08-02-04 HP
' Modified  :
' Remarks    :
' -----------------------------------------------------------------------------------
On Error GoTo Error_fhpFolder_Exists
  Dim fsObj                                                    'Filesystem object

  Set fsObj = CreateObject("Scripting.FileSystemObject")
  fhpFolder_Exists = fsObj.FolderExists(strFileName)

Exit_fhpFolder_Exists:
  Set fsObj = Nothing
  Exit Function

Error_fhpFolder_Exists:
  Select Case Err.Number
    Case 2501
    Case 3021
    Case Else
      MsgBox Err.Number & ": " & Err.Description, vbOKOnly + vbCritical, "Error in procedure 'fhpFolder_Exists'"
  End Select
  Resume Exit_fhpFolder_Exists

End Function




strPath = eksisterende path
strFolder = nyt directory
Avatar billede jkrons Professor
29. november 2004 - 14:53 #2
Eller lidt kortere

Sub OpretTest()
    On Error Resume Next
    ChDir "c:\test"
    ChDir "c:\"
    MkDir "c:\test"
End Sub
Avatar billede bak Forsker
29. november 2004 - 17:11 #3
jkrons, ku' du ikke bare nøjes med (ved godt at det er lidt pjat)
Sub OpretTest()
    On Error Resume Next
    MkDir "c:\test"
End Sub
Avatar billede jkrons Professor
29. november 2004 - 22:16 #4
bak-> Jo, det burde faktisk være nok, da den jo ikke opretter mappen igen, hvis den allerede findes.
Avatar billede erikbop Nybegynder
30. november 2004 - 15:33 #5
Tak for svarene.
Jeg har brugt bak's helt korte løsning. Hvad får jeg ud af at bruge ChDir - også til en anden gang?

Hvordan fordeler jeg lige pointene retfærdigt?
Avatar billede erikbop Nybegynder
24. april 2005 - 22:57 #6
Kan vi ikke få lukket den her. Bak og Jkrons, smid et svar. Ok?
Avatar billede jkrons Professor
24. april 2005 - 23:20 #7
Ok. ;-)
Avatar billede bak Forsker
26. april 2005 - 22:16 #8
ok :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester