Inhoudsopgave:
Video: App Script Editor Tutorial - Google Sheets - Excel VBA Equivalent - Read & Write to Ranges & Cells 2024
Als uw VBA-procedure de gebruiker om een bestandsnaam moet vragen, kunt u kunnen de InputBox-functie gebruiken en de Excel-gebruiker wat laten typen. Een invoervak is meestal niet het beste hulpmiddel voor deze taak, omdat de meeste gebruikers het moeilijk vinden om paden, backslashes, bestandsnamen en bestandsextensies te onthouden. Met andere woorden, het is veel te gemakkelijk om een fout te maken bij het typen van een bestandsnaam.
Gebruik voor een betere oplossing voor dit probleem de methode GetOpenFilename van het toepassingsobject, die ervoor zorgt dat uw code een geldige bestandsnaam krijgt, inclusief het volledige pad. De methode GetOpenFilename geeft het vertrouwde dialoogvenster Open weer (een lege beltoon voor het dialoogvenster Excel wordt weergegeven als u Bestand → Openen → Bladeren kiest).
De methode GetOpenFilename opent het opgegeven bestand niet daadwerkelijk. Deze methode retourneert eenvoudig de door de gebruiker geselecteerde bestandsnaam als een tekenreeks. Dan kun je code schrijven om te doen wat je wilt met de bestandsnaam.
De syntaxis voor de methode GetOpenFilename
De officiële syntaxis van de methode GetOpenFilename is als volgt:
-object. GetOpenFilename ([fileFilter], [filterIndex], [title], [buttonText], [multiSelect])
GetOpenFilename-methode neemt de optionele argumenten hieronder.
Argument | Wat het doet |
---|---|
FileFilter | Bepaalt de typen bestanden die worden weergegeven in het dialoogvenster
(bijvoorbeeld *. TXT). U kunt verschillende filters voor de gebruiker kiezen om uit te kiezen. |
FilterIndex | Bepaalt welke van de bestandsfilters in het dialoogvenster standaard
wordt weergegeven. |
Titel | Geeft de titel aan voor de titelbalk
van het dialoogvenster. |
ButtonText | Genegeerd (alleen gebruikt voor de Macintosh-versie van Excel). |
MultiSelect | Als True is geselecteerd, kan de gebruiker meerdere bestanden selecteren. |
Een GetOpenFilename voorbeeld
Het argument fileFilter bepaalt wat in de vervolgkeuzelijst Bestandstypen van het dialoogvenster verschijnt. Dit argument bestaat uit paren bestandsfilterreeksen gevolgd door de jokertabelbestandfilterspecificatie, met komma's die elk onderdeel en elk paar scheiden. Als dit argument wordt weggelaten, is standaard het volgende ingesteld:
Alle bestanden (*. *), *. *
Merk op dat deze reeks uit twee delen bestaat, gescheiden door een komma:
Alle bestanden (*. *)
en
*. *
Het eerste deel van deze tekenreeks is de tekst die wordt weergegeven in de vervolgkeuzelijst Bestandsnaam. Het tweede deel bepaalt welke bestanden in het dialoogvenster worden weergegeven. Bijvoorbeeld, *. * betekent alle bestanden.
De code in het volgende voorbeeld opent een dialoogvenster waarin de gebruiker om een bestandsnaam wordt gevraagd.De procedure definieert vijf bestandsfilters. Merk op dat de VBA-regel-voortzettingsreeks wordt gebruikt om de Filter-variabele in te stellen; dit helpt om dit nogal gecompliceerde argument te vereenvoudigen.
Sub GetImportFileName () Dim Finfo As String Dim FilterIndex As Long Dim Title As String Dim FileName As Variant 'Stel lijst in van bestandsfilters FInfo = "Tekstbestanden (*. Txt), *. txt, "& _" Lotus-bestanden (*. prn), *. prn, "& _" door komma's gescheiden bestanden (*. csv), *. csv, "& _" ASCII-bestanden (*.c.c), *. asc, "& _" Alle bestanden (*. *), *. * "'Display *. * standaard FilterIndex = 5 'Stel het dialoogvenster in Titel = "Selecteer een bestand om te importeren"' Haal de bestandsnaam op Bestandsnaam = Toepassing. GetOpenFilename (FInfo, _ FilterIndex, Title) 'Behandel retourinformatie uit dialoogvenster Als FileName = False Then MsgBox' Geen bestand geselecteerd. "Else MsgBox" U selecteerde "& Bestandsnaam Einde als Einde sub
Dit is het dialoogvenster dat Excel toont wanneer u deze procedure uitvoert. Het uiterlijk kan variëren, afhankelijk van de versie van Windows die u gebruikt en de weergaveopties die u hebt ingesteld.
De methode GetOpen bestandsnaam geeft een aanpasbaar dialoogvenster weer en retourneert het pad en de naam van het geselecteerde bestand. Het opent het bestand niet.In een echte toepassing zou u iets zinvoller doen met de bestandsnaam. U wilt deze bijvoorbeeld openen door een statement als dit te gebruiken:
Werkmappen. Open FileName
Merk op dat de FileName-variabele wordt gedeclareerd als een Variant-gegevenstype. Als de gebruiker op Annuleren klikt, bevat die variabele een Booleaanse waarde (False). Anders is Bestandsnaam een tekenreeks. Daarom verwerkt het gebruik van een gegevenstype Variant beide mogelijkheden.