Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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

Does Workbook Exist?

Does Workbook Exist?
08.11.2019 10:59:04
Klaus
Hallo Forum,
ich habe eine function namens "WkbExists", die prüft ob es eine Datei gibt und WAHR/FALSCH zurück gibt. Diese Funktion nutze ich seit über 10 Jahren durch verschiedene Excelversionen.
Neuer Job, neue Firma, neue Excelversion! Jetzt ist es "Office Professional Plus 2016". Meine Makrosammlung habe ich natürlich in den neuen Job mitgenommen - aber mein "WkbExists" funktioniert nicht mehr.
Ich habe auch fix eine alternative gegoogelt, die Version "FileExists" funktioniert. Aus akademischem Interesse: Kann mir jemand sagen woran es liegt?
LG,
Klaus M.
Option Explicit
Sub TestMe()
Debug.Print FileExists("H:\Herber\Export D.xlsx")
Debug.Print WkbExists("H:\Herber\Export D.xlsx")
End Sub
Private Function FileExists(filepath As String) As Boolean
Dim TestStr As String
TestStr = ""
On Error Resume Next
TestStr = Dir(filepath)
On Error GoTo 0
If TestStr = "" Then
FileExists = False
Else
FileExists = True
End If
End Function
Private Function WkbExists(sFile As String) As Boolean
Dim wkb As Object
On Error Resume Next
Set wkb = Workbooks(sFile)
If Not wkb Is Nothing Then
WkbExists = True
End If
On Error GoTo 0
End Function

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Does Workbook Exist?
08.11.2019 11:05:24
mumpel
Hallo!
Nimm mal "On Error Resume Next" raus und nenne uns die Fehlermeldung. Im Übrigen nutzt man "On Error Resume Next" nur in Notfällen (wenn es wirklich nicht anders geht), besser ist es sauber zu programmieren.
Gruß, René
Nachtrag
08.11.2019 11:06:42
mumpel
Es können auch fehlende Zugriffsrechte sein. Je nach Rechteverwaltung hat VBA nicht auf alles Zugriffsrechte.
AW: Does Workbook Exist?
08.11.2019 11:07:25
Nepumuk
Hallo Klaus,
versuch es mal so:
Debug.Print WkbExists("Export D.xlsx")
Deine Funktion prüft ob die Mappe geöffnet ist.
Gruß
Nepumuk
AW: Does Workbook Exist?
08.11.2019 11:55:59
Klaus
Hallo Mumpel,
in diesen Function sind die "On Error Resume Next" gewollt und beabsichtigt, damit die Function im Error-Fall "FALSE" zurück gibt. In meinem eigentlichen Makro habe ich natürlich eine vernünftige Fehlerbehandlung, die ich aber (da für die Frage nicht relevant) nicht mit in den Beitrag kopiert habe.
Hallo Nepumuk,
dir kann ich in VBA bestimmt nichts mehr erzählen ... du hast natürlich recht dass die Function nicht auf Existenz, sondern auf "bereits geöffnet" prüft, aber auch das funktioniert nicht mehr.
Sub TestPath()
Const pathOld As String = "H:\herber\Export D.xlsx"
Workbooks.Open pathOld
Debug.Print WkbExists(pathOld)
End Sub
Gibt mir FALSE zurück, obwohl das Workbook ja definitiv geöffnet ist.
Nehme ich On Error raus:

Private Function WkbExists(sFile As String) As Boolean
Dim wkb As Object
'On Error Resume Next
Set wkb = Workbooks(sFile)
If Not wkb Is Nothing Then
WkbExists = True
End If
'On Error GoTo 0
End Function

Dann spinnt diese Zeile
Set wkb = Workbooks(sFile)
mit der Meldung "Index ausserhalb des Bereichs". Ich möchte halt gerne wissen warum ein Makro, dass über Jahre gut lief und in dutzenden meiner alten Dateien Verwendung hatte, plötzlich nicht mehr funktioniert.
LG,
Klaus M.
Anzeige
Ein geöffnetes WB hat keinen Pfad im Namen!
08.11.2019 12:13:31
EtoPHG
Hallo Klaus,
Irgendwie wirbelst du da die beiden von Nepumuk erwähnten Dinge (Workbook geöffnet, bzw. Datei existiert) durcheinander.
Ein geöffnetes Workbook kennt keinen Pfad als String-Übergabe an den Index! Darum der Fehler!
Gruess Hansueli
AW: Ein geöffnetes WB hat keinen Pfad im Namen!
08.11.2019 12:21:08
Klaus
Ach Mist, so was doofes.
Danke, Hansueli!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige