Ich möchte gerne eine Textdatei eine Ebene über ThisWorkbook.Path anlegen.
(Open "Pfad" For Output As #1)
Kann ich den Pfad abfragen, oder muss ich temporär mit ChDir ".." arbeiten?
Lieben Dank aus klein Paris
Bernd
Function GetParentFolder(strPath) As String
Dim fso As New FileSystemObject
If Len(strPath) > 0 Then
GetParentFolder = fso.GetParentFolderName(strPath)
End If
End Function
Sub test()
Debug.Print GetParentFolder(ThisWorkbook.Path)
End Sub
Gruß
Option Explicit
Sub test_1()
Dim strPfad As String
strPfad = ThisWorkbook.Path
If strPfad = "" Then
'Datei noch nicht gespeichert
ElseIf Len(strPfad) = 2 Then
'Datei befindet sich im Root-Verzeichnis (z.B.: 'C:'
Else
strPfad = Left(strPfad, InStrRev(strPfad, "\", -1, vbTextCompare) - 1)
End If
Debug.Print strPfad
End Sub
Das Beispiel von Kawensmann solltest Du so abändern, wenn der explizite Verweis auf FSO nicht gesetzt ist.
Function GetParentFolder(strPath) As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If Len(strPath) > 0 Then
GetParentFolder = fso.GetParentFolderName(strPath)
End If
End Function
Sub test()
Dim strPfad As String
strPfad = GetParentFolder(ThisWorkbook.Path)
If strPfad = "" Then
'Datei befindet sich im Root-Verzeichnis (z.B.: 'C:'
Else
Debug.Print strPfad
End If
End Sub
Gruß von Luschi