Sub test()
thesentence = InputBox("Type the filename with full extension", "Raw Data File")
Range("A1").Value = thesentence
If Dir("thesentence") <> "" Then
MsgBox "File exists."
Else
MsgBox "File doesn't exist."
End If
End Sub
Wenn ich den Textwert aus dem Eingabefeld nehme, funktioniert dies nicht. Wenn Sie es jedoch "the sentence"
aus If entfernen Dir()
und durch einen tatsächlichen Namen im Code ersetzen, funktioniert es. Kann jemand helfen?
Verwenden Sie das Office-
FileDialog
Objekt, damit der Benutzer eine Datei aus dem Dateisystem auswählt. Fügen Sie in Ihrem VB-Projekt oder im VBA-Editor eine Referenz hinzuMicrosoft Office Library
und schauen Sie in der Hilfe nach. Dies ist viel besser, als wenn Menschen vollständige Pfade betreten.In diesem Beispiel kann
msoFileDialogFilePicker
der Benutzer mehrere Dateien auswählen. Sie könnten auch verwendenmsoFileDialogOpen
.Es gibt viele Optionen, daher müssen Sie die vollständigen Hilfedateien anzeigen, um alles zu verstehen, was möglich ist. Sie können mit dem Office 2007 FileDialog-Objekt beginnen (natürlich müssen Sie die richtige Hilfe für die von Ihnen verwendete Version finden).
quelle
Korrektur zu fileExists von @UberNubIsTrue:
EDIT: verkürzte Version
quelle
nur diese Sprachmarken loswerden
Dies ist die, die ich mag:
quelle
Funktioniert fast sehr gut bei mir. Wenn ich es mit "" der leeren Zeichenfolge aufrufe, gibt Dir " connection.odc " zurück !! Wäre toll, wenn ihr euer Ergebnis teilen könntet.
Jedenfalls gefällt mir das:
quelle
dir("")
Sie den Namen der ersten Datei im aktuellen Verzeichnis erhalten. In Ihrem Fall war es eine Datei namensconnection.odc
.Ich bin nicht sicher, was speziell mit Ihrem Code nicht stimmt, aber ich verwende diese Funktion, die ich online gefunden habe (URL in den Kommentaren), um zu überprüfen, ob eine Datei vorhanden ist:
quelle
? dir$("C:\Users\Chloe\AppData\Local\Temp\")
gibt die erste Datei in diesem Verzeichnis aus und ist nicht gleich "". Daher wird true zurückgegeben, auch wenn Sie dasDirectory
Argument weglassen oder auf false setzen.quelle
Sehr alter Beitrag, aber da er mir nach einigen Änderungen geholfen hat, dachte ich, ich würde ihn teilen. Wenn Sie überprüfen, ob ein Verzeichnis vorhanden ist, möchten Sie das Argument vbDirectory zur Dir-Funktion hinzufügen. Andernfalls kehren Sie
0
jedes Mal zurück. (Bearbeiten: Dies war eine Antwort auf Roys Antwort, aber ich habe es versehentlich zu einer regelmäßigen Antwort gemacht.)quelle
basierend auf anderen Antworten hier möchte ich meine Einzeiler teilen, die für Verzeichnisse und Dateien funktionieren sollten :
Len(Dir(path))
funktionierte einfach nicht für Verzeichnisse (Excel 2010 / Win7))als
PathExists(path)
Funktion:quelle