Denne Excel-makroen lar deg sende en filbane for å vurdere om filen er der. For eksempel kan du ha en prosess som manipulerer en fil et sted på PC-en. For eksempel kan det hende du må åpne en eksisterende arbeidsbok for å legge til data til den på daglig basis. I dette tilfellet må du kanskje teste for å se om filen du må manipulere eksisterer.
Hvordan makroen fungerer
Det første å legge merke til med denne makroen er at det er en funksjon, ikke en Sub-prosedyre. Ved å gjøre denne makroen til en funksjon kan du sende hvilken som helst filbane til den.
I denne makroen bruker du Dir-funksjonen, som returnerer en streng som representerer navnet på filen som samsvarer med det du sender til den. Denne funksjonen kan brukes på mange måter, men her bruker du den til å sjekke om filbanen du sender til den eksisterer:
Funksjon FileExists(FPath As String) Som boolsk
'Trinn 1: Deklarer variablene dine
Dim F-navn som streng
'Trinn 2: Bruk Dir-funksjonen for å få filnavnet
FName = Dir(FPath)
'Trinn 3: Hvis filen eksisterer, returner True; annet Falsk
Hvis FName <> " Da fileksisterer = True _
Else: FileExists = False
Avslutt funksjon
Trinn 1 erklærer en strengvariabel som inneholder filnavnet som returnerer fra Dir-funksjonen. FName er navnet på strengvariabelen.
I trinn 2 prøver du å angi FName-variabelen. Dette gjør du ved å sende FPath-variabelen til Dir-funksjonen. Denne FPath-variabelen sendes via funksjonsdeklarasjonene (se første linje i koden). Denne strukturen forhindrer at du må hardkode en filbane, og overføre den som en variabel i stedet.
Hvis FName-variabelen ikke kan angis, eksisterer ikke banen du passerte. Dermed er FName-variabelen tom. Trinn 3 oversetter bare resultatet til et sant eller usant uttrykk.
Igjen kan denne funksjonen brukes til å evaluere hvilken som helst filbane du sender til den. Dette er det fine med å skrive makroen som en funksjon.
Følgende makro viser hvordan du bruker denne funksjonen:
Sub Makro1()
If FileExists("C:TempMyNewBook.xlsx") = True Da
MsgBox "Filen finnes."
Ellers
MsgBox "Filen finnes ikke."
Slutt om
End Sub
Hvordan bruke makroen
For å implementere denne makroen kan du kopiere og lime inn begge kodebitene i en standardmodul:
Aktiver Visual Basic Editor ved å trykke Alt+F11.
Høyreklikk navnet på prosjektet/arbeidsboken i prosjektvinduet.
Velg Sett inn → Modul.
Skriv eller lim inn koden i den nyopprettede modulen.