Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Workbooks.Open: Pfadlänge umgehen?

Workbooks.Open: Pfadlänge umgehen?
30.06.2014 15:27:14
Gordon
Moin moin,
mal eine kurze Frage in die Runde:
Gibt es eine Möglichkeit die begrenzte Pfadlänge bei der Methode Workbooks.Open() zu umgehen? Soweit ich es nun nachgelesen habe darf der Pfad nur max. 218 Zeichen lang sein.
Gibt es da Lösungen für oder muss ich dann im Zweifel meine Ordnerstruktur so anpassen, dass ich unter 218 Zeichen komme? Danke für die Hilfe!
Gruß
Gordon
PS: Kann amn hier eigentlich seinen Account abändern? Würde gerne meine E-Mail-Adresse ändern, aber ich habe nirgends den Punkt gefunden.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbooks.Open: Pfadlänge umgehen?
30.06.2014 15:59:38
Nepumuk
Hallo,
Änderungen an deinem Account sind nicht möglich.
Beispiel (den Pfad muss es geben ansonsten gibt die Funktion einen leeren String zurück !!!!):
Option Explicit

Private Declare Function GetShortPathNameA Lib "kernel32.dll" ( _
    ByVal lpszLongPath As String, _
    ByVal lpszShortPath As String, _
    ByVal lBuffer As Long) As Long

Private Const MAX_PATH As Long = 260&

Public Function GetShortPath(ByVal pvstrFileName As String) As String
    Dim lngReturn As Long, strPath As String
    strPath = Space$(MAX_PATH)
    lngReturn = GetShortPathNameA(pvstrFileName, strPath, MAX_PATH)
    GetShortPath = Left$(strPath, lngReturn)
End Function

Public Sub Test()
    
    Dim strPath As String
    
    strPath = "D:\Ordner mit einem ganz langen Namen\Ordner mit einem ganz langen Namen\" & _
        "Ordner mit einem ganz langen Namen\Ordner mit einem ganz langen Namen\" & _
        "Ordner mit einem ganz langen Namen\Ordner mit einem ganz langen Namen\" & _
        "Ordner mit einem ganz langen Namen\Test.xlsx"
    
    MsgBox Len(strPath)
    
    strPath = GetShortPath(strPath)
    
    MsgBox Len(strPath)
    
End Sub

Ich hab keine Ahnung wie die Funktion auf UNC-Pfade reagiert.
Gruß
Nepumuk

Anzeige
AW: Workbooks.Open: Pfadlänge umgehen?
02.07.2014 10:53:08
Gordon
Super,
das hat wunderbar geklappt. Danke dir. Ich habe zwar noch nicht 100%-ig verstanden, was genau dort passiert (das Dollarzeichen an den Funktionen ist mir z.B. neu), aber das werde ich jetzt mal versuchen zu ergoogeln. :)
Vielen Dank aber schon mal! :)
gruß
Gordon

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige