Hvordan bruke GetOpenFilename Method i Excel 2016 VBA

Hvis VBA prosedyre må spørre brukeren om et filnavn, du kunne
bruke InputBox funksjonen og la Excel brukeren gjøre noen skrive. En tekstboks er vanligvis ikke det beste verktøyet for denne jobben, men fordi de fleste brukerne synes det er vanskelig å huske stier, backslashes, filnavn og filtyper. Med andre ord, det er altfor lett å skru opp når du skriver et filnavn.

For en bedre løsning på dette problemet ved å bruke GetOpenFilename metoden i Application objektet, som sikrer at koden får sine hender på en gyldig filnavn, inkludert sin fullstendige banen. Den GetOpenFilename metoden viser kjent Åpne dialogboksen (a dead ringer for dialogboksen Excel vises når du velger Fil → Open → Browse).
GetOpenFilename metoden faktisk ikke åpne den angitte filen. Denne metoden returnerer bare den bruker valgt filnavn som en streng. Deretter kan du skrive kode for å gjøre hva du vil med filnavnet

Syntaksen for GetOpenFilename metoden

Den offisielle syntaksen til GetOpenFilename metoden er som følger:.
Object.GetOpenFilename ( [Filefilter], [filterIndex], [tittel],,)

GetOpenFilename metoden tar [Knappe] [Multiselect] de valgfrie argumenter nedenfor.
ArgumentWhat Det DoesFileFilterDetermines hva slags filer som vises i dialogboksen (for eksempel , *.TEKST). Du kan spesifisere flere filtre for userto velge from.FilterIndexDetermines hvilken av fil filtre dialogboksen vises bydefault.TitleSpecifies bildeteksten for dialogboksen ’ s titlebar.ButtonTextIgnored (brukes kun for Macintosh-versjonen av Excel) .MultiSelectIf Sant nok, Brukeren kan velge flere filer.
En GetOpenFilename eksempel

Filefilter argument bestemmer hva som vises i dialogboksen sin Filtype nedtrekkslisten. Dette argumentet består av par av fil filter strenger fulgt av wildcard filfilter spesifikasjonen, med komma som skiller hver del og par. Hvis utelatt, dette argumentet som standard følgende:
Alle filer (*. *), * *

Legg merke til at denne strengen består av to deler, atskilt med komma..
Alle filer (* * )

og product: *. *

Den første delen av denne strengen er teksten som vises i Filtype nedtrekkslisten. Den andre delen bestemmer hvilke filer de dialogboks. For eksempel *. * Hjelp alle filer.

Koden i følgende eksempel åpner en dialogboks som ber brukeren om et filnavn. Prosedyren definerer fem fil filtre. Legg merke til at VBA line-fortsettelse sekvens brukes til å sette opp Filter variable; dermed bidrar til å forenkle dette ganske komplisert argument.
Sub GetImportFileName () Dim Finfo As String Dim FilterIndex As Long Dim Tittel As String Dim Filename As Variant 'Sett opp liste over fil filtre FINFO = "tekstfiler (* .txt), * .txt, "& _ "Lotus filer (* .prn), * PRN,." &Amp; _ "Kommadelte filer (* .csv), * csv,." &Amp; _ "ASCII-filer (* .asc), * stigende,." &Amp; _ "Alle filer (*. *), *. *" 'Skjerm *. * Som standard FilterIndex = 5' Sett dialogboksen bildetekst Tittel = "Velg en fil til Import" 'Get filnavnet Filename = Application.GetOpenFilename (FINFO , _ FilterIndex, Tittel) 'Håndtak tilbake info fra dialogboksen Hvis Filename = False Deretter MsgBox "Ingen fil ble valgt." Else MsgBox "Du valgte" & Filename End IfEnd Sub

Her er dialogboksen Excel vises når du utfører denne prosedyren. Utseendet kan variere, avhengig av hvilken versjon av Windows du bruker, og visningsalternativer du har angitt.
GetOpen Filnavn metoden viser en passelig dialogboks og returnerer den valgte filen bane og navn. Det åpnes ikke filen.

I en reell søknad, vil du gjøre noe mer meningsfylt med filnavnet. For eksempel kan det være lurt å åpne den ved hjelp av en uttalelse som dette:
Workbooks.Open FileNameNotice at Filename variabelen er deklarert som en variant datatype. Hvis brukeren klikker på Avbryt, inneholder den variabelen en boolsk verdi (usann). Ellers er Filename en streng. Derfor bruker en variant datatype håndterer både muligheter. Anmeldelser