VBA FreeFile

Excel VBA FreeFile

FreeFile is een functie in VBA die alleen beschikbaar is als VBA-functie en niet als werkbladfunctie. VBA FreeFile-functie retourneert het unieke gehele getal naar het bestand dat wordt geopend en behoudt het nummer voor het volgende beschikbare bestandsnummer.

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] Als [File Number]

Bestandspadadres: we moeten het bestandsadres op onze computer vermelden dat we proberen te openen.

Modus om te openen: bij het openen van het bestand moeten we weten wat voor model we gaan toepassen. We kunnen hier drie modi 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.

Modus toevoegen 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. Hier speelt de functie "FreeFile" een vitale rol en retourneert het unieke gehele getal.

Hoe de FreeFile-functie in Excel VBA te gebruiken?

U kunt deze VBA FreeFile Excel-sjabloon hier downloaden - VBA FreeFile Excel-sjabloon

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.

Eerst 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 bovengenoemde bestandspad 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 variabele "FileNumber" te zien.

Het toont het bestandsnummer als 1. Dus de gratis bestandsfunctie reserveert dit nummer automatisch in het openingsbestand. Tijdens het uitvoeren hiervan worden 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 1 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 we de instructie Bestand sluiten hebben gebruikt. FreeFile herkent het nieuw geopende bestand als het nieuwe en retourneert het gehele getal als 1.