VBA FreeFile

Excel VBA FreeFile

FreeFile är en funktion i VBA som endast är tillgänglig som en VBA-funktion inte som en kalkylfunktion. VBA FreeFile-funktionen returnerar det unika heltalet till filen som öppnas och bevarar numret för nästa tillgängliga filnummer.

Vi öppnar vanligtvis filer från vår dator för att antingen skriva något eller för att vara skrivskyddade, medan vi hänvisar till dessa filer måste vi hänvisa med ett unikt heltal. VBA FreeFile-funktionen tillåter oss att bestämma det unika heltalet som ska tilldelas för att öppna filen för att läsa, skriva och öppna filer med VBA.

Titta nu på syntaxen för OPEN-uttalandet.

OPEN [File Path Address] för [Mode to open] Som [File Number]

Filvägsadress: Vi måste nämna filadressen på vår dator som vi försöker öppna.

Läge att öppna: När vi öppnar filen måste vi vara medvetna om vilken typ av modell vi ska tillämpa. Vi kan använda tre lägen här, "Input Mode", "OutPut Mode" och "Append Mode".

Inmatningsläge för att bara läsa filen.

Utmatningsläge för att radera befintliga data och infoga nya data.

Lägg till läge för att lägga till ny data medan du behåller befintlig data.

Filnummer: Med detta argument kan vi hänvisa till filen vi öppnar. Här spelar funktionen "FreeFile" en viktig roll och returnerar det unika heltalet.

Hur använder jag FreeFile-funktionen i Excel VBA?

Du kan ladda ner denna VBA FreeFile Excel-mall här - VBA FreeFile Excel-mall

Titta nu på koden nedan.

Koda:

 Sub FreeFile_Example1 () Dim sökväg som sträng Dim FileNumber som heltal sökväg = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Open path för utdata som FileNumber sökväg = "D: \ Articles \ 2019 \ File 2.txt "FileNumber = FreeFile Öppen sökväg för utdata som FileNumber End Sub 

Låt mig nu avkoda ovanstående kod så att du kan förstå.

Först har jag förklarat två variabler.

 Dim sökväg som sträng, dim filnummer som heltal 

Sedan har jag tilldelat filvägen med dess namn.

Path = "D: \ Articles \ 2019 \ File 1.txt"

Sedan för den enda variabeln har jag tilldelat funktionen FREEFILE.

FileNumber = FreeFile

Sedan har jag använt Open-uttalandet för att öppna textfilen i ovannämnda filsökväg.

 Öppna sökväg för utdata som filnummer

Ok, nu kommer jag att köra rad för radkod genom att trycka på F8-tangenten och se värdet på variabeln "FileNumber".

Det visar filnumret som 1. Så den kostnadsfria filfunktionen reserverar automatiskt detta nummer till den inledande filen. När du kör detta öppnas inga andra filer.

Nu fortsätter jag att köra nästa rad med VBA-kod och se vad filnumret är om jag hoppar till nästa rad.

Nu står det 2. Så FreeFile-funktionen reserverar det unika heltalet 2 till den andra öppningsfilen.

FreeFile-funktionen Returnerar alltid 1 om vi stänger Excel-filen

En sak som vi måste titta på är att VBA “FreeFile” -funktionen alltid returnerar 1 om vi stänger den öppnade filen innan den andra excel-filen öppnas.

Titta till exempel på koden nedan.

Koda:

 Sub FreeFile_Example2 () Dim sökväg som sträng Dim FileNumber som heltal sökväg = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Öppna sökväg för utdata som FileNumber Stäng FileNumber sökväg = "D: \ Articles \ 2019 \ File 2 .txt "FileNumber = FreeFile Öppna sökväg för utdata som FileNumber Stäng FileNumber End Sub 

Nu ska jag återigen köra koden rad för rad genom att trycka på F8-tangenten.

Det står 1 som vanligt.

Nu kommer jag att gå vidare till nästa nivå.

Även i det andra försöket till står det 1.

Anledningen till detta är att vi har använt File file statement FreeFile känner igen den nyöppnade filen som den nya och returnerar heltalet som 1.