Access-VBA-wie man deterine, wenn die Datei im Excel-Format?
MS Access VBA wie kann ich eine Datei, um zu wissen, ob es in Excel-format?
- Können Sie näher erläutern, was Sie zu tun versuchen? Oft ist es ausreichend, zu überprüfen, ob die Datei-Erweiterung ist .xls-oder .xlsx (und möglicherweise auch einige der Excel-Erweiterungen aufgeführt, die in der "Speichern Als Typ" - Teil, die Excel "speichern unter" - dialog, je nachdem, was Sie brauchen Sie). Wenn dies nicht möglich ist, für Ihr Projekt, wir würden wissen müssen.
- Ich habe einen Ordner mit vielen Dateien. Viele, aber nicht alle, sind im Excel-format. Aber, dass kann nicht bestimmt werden, indem die Erweiterung. Ich möchte Sie zu öffnen - mit-Arbeitsmappe-Objekt - aus den verschiedensten überprüfen von Daten in einem Programm, aber ich muss wissen, ob es sich um eine Excel-Tabelle. Auch ich möchte zu trennen, Excel-und nicht Excel.
- Es gibt viele Datei-Formate, die im Zusammenhang mit Excel. Siehe hier. Was definierst du als Excel-format?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte noch nie ein Problem, wenn eine Excel-Datei kann nicht direkt bestimmt werden, durch die Erweiterung, aber wenn ich zu tun hatte, ist die erste Sache, die kommt sich zu kümmern, ist das UNIX-Dienstprogramm
file
, die identifiziert eine Datei geben, die von der Betrachtung seiner Inhalte. Er erkennt eine sehr große Anzahl von Dateitypen.Benutze ich Cygwin für Windows, die im wesentlichen aus einer UNIX-Umgebung unter Windows.
Wenn ich den
file
Befehl in Cygwin auf einem Excel 2010 (xlsx) - Datei hab ich umbenannt in '.csv -', ich:Es ist eine etwas ungeschickte Lösung, aber in deinem VBA könnte man eine Gabel
C:\cygwin\bin\file.exe
Prozess mit Windows Script Host, und erfassen Sie die Ausgabe für jede Datei.Wenn Sie den code der Pfad zu der Excel-Datei mit einzelnen ticks um es (D. H. 'C:\path\to\file'), Cygwin sollte es korrekt interpretieren zu können (Cygwin utilities zu erwarten, dass ein unix-like path: /Pfad/zur/Datei). Ich habe gerade überprüft, dieses in einer normalen Windows-Eingabeaufforderung, und es funktionierte:
Gibt es auch eine native Windows-binary von
file
im GnuWin32 SourceForge-Projekt, aber es scheint ein wenig veraltet; ich habe es nicht ausprobiert, aber es kann immer noch erkennen, moderne Excel-Versionen.Wenn Sie eine Excel-Lösung -- ich bin nicht ganz sicher, aus der Spitze von meinem Kopf; ich hoffe, jemand anderes hat dies getan, bevor.
Workbooks.Open
zum öffnen einer DLL-Datei und Excel noch geöffnet, aber zeigt Müll. Ich habe nicht gesehen, alles gebaut in Office, dies zu tun wäre, aber man weiß ja nie... du vielleicht Glück & jemanden finden, der diese hat!file
- Dienstprogramm funktioniert.Dies ist nicht für den Zugang sondern für Excel benutze ich dieses. Dies ist nicht der größte, noch anybodies bevorzugte Lösung, aber Klammer dich.
Yeah Excel verwendet automagic. Ich weiß. Es ist scheußlich. Und das ScreenUpdating funktioniert nicht ganz. Ihre Taskleiste wird aktualisiert, sobald Sie öffnen ein schließen Sie die Datei. Aber dennoch, es funktioniert.
Müssen Sie möglicherweise erstellen Sie eine Instanz von Excel in Ihrer Access-VBA-Skript und Optional pass-Funktion ist so etwas wie dieses. Hinweis habe ich noch nicht getestet.
Einige Hinweise auf einen möglichen Ansatz, mithilfe von ADOX