Excel VBA FreeFile
FreeFile is een functie in VBA die alleen beschikbaar is als VBA-functie, niet als werkbladfunctie. VBA FreeFile-functie retourneert het unieke gehele getal naar het bestand, dat wordt geopend en het volgende beschikbare bestandsnummer behoudt.
We openen meestal bestanden van onze computer om iets te schrijven of om alleen te lezen, terwijl we naar die bestanden verwijzen, moeten we verwijzen met een uniek geheel getal. Met de VBA FreeFile-functie kunnen we dat unieke gehele getal bepalen dat moet worden toegewezen aan het openen van het bestand om bestanden te lezen, schrijven en openen met VBA.

Bekijk nu de syntaxis van de OPEN-instructie.
OPEN (File Path Address) Voor (Mode to Open) As (File Number)
Bestandspadadres: we moeten het bestandsadres vermelden op onze computer dat we proberen te openen.
Te openen modus: tijdens het openen van het bestand moeten we weten wat voor model we gaan toepassen. We kunnen hier drie manieren gebruiken: "Input Mode", "OutPut Mode" en "Append Mode".
Invoermodus om alleen het bestand te lezen.
Uitvoermodus om de bestaande gegevens weg te vagen en nieuwe gegevens in te voegen.
Append-modus om nieuwe gegevens toe te voegen met behoud van de bestaande gegevens.
Bestandsnummer: met dit argument kunnen we verwijzen naar het bestand dat we openen, waarbij de functie "FreeFile" een cruciale rol speelt en het unieke gehele getal retourneert.
Hoe de FreeFile-functie in Excel VBA te gebruiken?
Kijk nu naar de onderstaande code.
Code:
Sub FreeFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: Articles 2019 File 1.txt" FileNumber = FreeFile Open pad voor uitvoer als FileNumber Path = "D: Articles 2019 File 2.txt "FileNumber = FreeFile open pad voor uitvoer als FileNumber End Sub

Laat me nu de bovenstaande code decoderen zodat u het begrijpt.
Ten eerste heb ik twee variabelen verklaard.
Dim Path As String, Dim FileNumber As Integer
Vervolgens heb ik het bestandspad met zijn naam toegewezen.
Path = "D: Articles 2019 File 1.txt"
Dan heb ik voor de nog een variabele de FREEFILE-functie toegewezen.
FileNumber = FreeFile
Vervolgens heb ik de Open-instructie gebruikt om het tekstbestand in het bovenstaande pad te openen.
Open pad voor uitvoer als bestandsnummer
Oké, nu zal ik regel voor regel code uitvoeren door op de F8-toets te drukken en de waarde van de variabele "FileNumber" te zien.

Het toont het bestandsnummer als 1. Dus de gratis bestandsfunctie reserveert dit nummer automatisch in het openingsbestand. Terwijl dit wordt uitgevoerd, worden er geen andere bestanden geopend.
Nu zal ik de volgende regel met VBA-code blijven uitvoeren en kijken wat het bestandsnummer is als ik naar de volgende regel spring.

Nu staat er 2. Dus de FreeFile-functie reserveert het unieke gehele getal 2 naar het tweede openingsbestand.
FreeFile-functie retourneert altijd 1 als we het Excel-bestand sluiten.
Een ding waar we naar moeten kijken is dat de VBA "FreeFile" -functie altijd een retourneert als we het geopende bestand sluiten voordat we het tweede Excel-bestand openen.
Kijk bijvoorbeeld naar de onderstaande code.
Code:
Sub FreeFile_Example2 () Dim Path As String Dim FileNumber As Integer Path = "D: Articles 2019 File 1.txt" FileNumber = FreeFile Open pad voor uitvoer als bestandsnummer Sluit FileNumber Path = "D: Articles 2019 File 2 .txt "FileNumber = FreeFile Open pad voor uitvoer als FileNumber Sluit FileNumber End Sub

Nu zal ik de code nogmaals regel voor regel uitvoeren door op de F8-toets te drukken.

Er staat zoals gewoonlijk 1.
Nu ga ik door naar het volgende niveau.

Zelfs bij de tweede poging staat er 1.
De reden hiervoor is dat omdat we de instructie Bestand sluiten hebben gebruikt, FreeFile het nieuw geopende bestand herkent als het nieuwe en het gehele getal als 1 retourneert.