VBA FreeFile | Jak používat funkci FreeFile v aplikaci Excel VBA?

Excel VBA FreeFile

FreeFile je funkce ve VBA, která je k dispozici pouze jako funkce VBA, nikoli jako funkce listu. Funkce VBA FreeFile vrací jedinečné celé číslo do souboru, který je otevřen, a zachovává číslo pro další dostupné číslo souboru.

Obvykle otevíráme soubory z našeho počítače, abychom buď něco napsali, nebo jen pro čtení, zatímco na tyto soubory musíme odkazovat s jedinečným celým číslem. Funkce VBA FreeFile nám umožňuje určit toto jedinečné celé číslo, které se přiřadí otevření souboru ke čtení, zápisu a otevření souborů pomocí VBA.

Nyní se podívejte na syntaxi příkazu OPEN.

OTEVŘÍTE [Adresa cesty souboru] Pro [Režim otevření] Jako [Číslo souboru]

Adresa cesty k souboru: Musíme uvést adresu souboru v počítači, kterou se pokoušíme otevřít.

Režim otevření: Při otevírání souboru si musíme být vědomi toho, jaký typ modelu použijeme. Můžeme zde použít tři režimy: „Input Mode“, „OutPut Mode“ a „Append Mode“.

Vstupní režim pro čtení pouze souboru.

Režim výstupu k vymazání stávajících dat a vložení nových dat.

Režim přidání pro přidání nových dat při zachování stávajících dat.

Číslo souboru: Tímto argumentem můžeme odkázat na soubor, který otevíráme. To, kde funkce „FreeFile“ hraje zásadní roli a vrací jedinečné celé číslo.

Jak používat funkci FreeFile v aplikaci Excel VBA?

Tuto šablonu VBA FreeFile Excel si můžete stáhnout zde - Šablona VBA FreeFile Excel

Nyní se podívejte na níže uvedený kód.

Kód:

 Sub FreeFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Article \ 2019 \ File 1.txt" FileNumber = FreeFile Open Path for Output As FileNumber Path = "D: \ articles \ 2019 \ File 2.txt "FileNumber = FreeFile Otevřená cesta pro výstup jako File Subumber End Sub 

Nyní mi dovolte dekódovat výše uvedený kód, abyste tomu porozuměli.

Nejprve jsem deklaroval dvě proměnné.

 Dim Path As String, Dim FileNumber As Integer 

Pak jsem přiřadil cestu k souboru s jeho názvem.

Cesta = "D: \ Články \ 2019 \ Soubor 1.txt"

Pak jsem pro jednu další proměnnou přidělil funkci FREEFILE.

FileNumber = FreeFile

Pak jsem použil příkaz Otevřít k otevření textového souboru ve výše uvedené cestě k souboru.

 Otevřete cestu pro výstup jako číslo souboru

Dobře, nyní spustím řádek po řádku kód stisknutím klávesy F8 a uvidím hodnotu proměnné „FileNumber“.

Zobrazuje číslo souboru jako 1. Funkce bezplatného souboru tedy automaticky rezervuje toto číslo pro otevírací soubor. Během tohoto procesu se neotevírají žádné další soubory.

Nyní budu pokračovat v provádění dalšího řádku kódu VBA a uvidím, jaké je číslo souboru, pokud přejdu na další řádek.

Nyní říká 2. Funkce FreeFile tedy vyhrazuje jedinečné celé číslo 2 druhému otevíracímu souboru.

Funkce FreeFile vždy vrátí 1, pokud zavřeme soubor aplikace Excel

Jedna věc, na kterou se musíme podívat, je funkce „FreeFile“ VBA vždy vrátí 1, pokud uzavřeme otevřený soubor před otevřením druhého souboru aplikace Excel.

Podívejte se například na níže uvedený kód.

Kód:

 Sub FreeFile_Example2 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Články \ 2019 \ Soubor 1.txt" FileNumber = FreeFile Otevřená cesta pro výstup jako FileNumber Zavřít FileNumber Cesta = "D: \ Články \ 2019 \ Soubor 2 .txt "FileNumber = FreeFile Otevřená cesta pro výstup jako FileNumber Zavřít FileNumber End Sub 

Nyní znovu provedu kódový řádek po řádku stisknutím klávesy F8.

Říká se 1 jako obvykle.

Nyní postoupím na další úroveň.

I při druhém pokusu to říká 1.

Důvodem je to, že jsme použili příkaz Zavřít soubor, FreeFile rozpozná nově otevřený soubor jako nový a vrátí celé číslo jako 1.