VBA FreeFile

Excel VBA FreeFile

FreeFile è una funzione in VBA disponibile solo come funzione VBA e non come funzione del foglio di lavoro. La funzione VBA FreeFile restituisce il numero intero univoco al file che viene aperto e conserva il numero per il successivo numero di file disponibile.

Di solito apriamo i file dal nostro computer per scrivere qualcosa o in sola lettura, mentre ci riferiamo a quei file dobbiamo fare riferimento con un numero intero univoco. La funzione VBA FreeFile ci consente di determinare quel numero intero univoco da assegnare all'apertura del file per leggere, scrivere e aprire i file utilizzando VBA.

Ora guarda la sintassi dell'istruzione OPEN.

OPEN [Indirizzo percorso file] Per [Modalità di apertura] come [Numero file]

Indirizzo del percorso del file: dobbiamo menzionare l'indirizzo del file sul nostro computer che stiamo tentando di aprire.

Modalità di apertura: durante l'apertura del file dobbiamo essere consapevoli del tipo di modello che applicheremo. Possiamo usare tre modalità qui, "Input Mode", "OutPut Mode" e "Append Mode".

Modalità di input per leggere solo il file.

Modalità di output per cancellare i dati esistenti e inserire nuovi dati.

Modalità di aggiunta per aggiungere nuovi dati mantenendo i dati esistenti.

Numero file: con questo argomento possiamo fare riferimento al file che stiamo aprendo. Qui la funzione "FreeFile" gioca un ruolo fondamentale e restituisce il numero intero univoco.

Come utilizzare la funzione FreeFile in Excel VBA?

Puoi scaricare questo modello VBA FreeFile Excel qui - Modello VBA FreeFile Excel

Ora guarda il codice sottostante.

Codice:

 Sub FreeFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Apri percorso per output come FileNumber Path = "D: \ Articles \ 2019 \ File 2.txt "FileNumber = FreeFile Open Path per l'output come FileNumber End Sub 

Ora lasciami decodificare il codice sopra per farti capire.

Per prima cosa ho dichiarato due variabili.

 Dim Path As String, Dim FileNumber As Integer 

Quindi ho assegnato il percorso del file con il suo nome.

Percorso = "D: \ Articoli \ 2019 \ File 1.txt"

Quindi per l'altra variabile, ho assegnato la funzione FREEFILE.

FileNumber = FreeFile

Quindi ho usato l'istruzione Open per aprire il file di testo nel percorso del file sopra menzionato.

 Apri percorso per output come FileNumber

Ok, ora eseguirò il codice riga per riga premendo il tasto F8 e vedrò il valore della variabile "FileNumber".

Mostra il numero di file come 1. Quindi, la funzione file gratuito riserva automaticamente questo numero al file di apertura. Durante l'esecuzione non vengono aperti altri file.

Ora continuerò a eseguire la riga successiva del codice VBA e vedrò qual è il numero di file se salto alla riga successiva.

Ora dice 2. Quindi la funzione FreeFile riserva il numero intero univoco 2 al secondo file di apertura.

Funzione FreeFile Restituisce sempre 1 se chiudiamo il file Excel

Una cosa che dobbiamo guardare è che la funzione VBA "FreeFile" restituisce sempre 1 se chiudiamo il file aperto prima di aprire il secondo file excel.

Ad esempio, guarda il codice seguente.

Codice:

 Sub FreeFile_Example2 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Apri percorso per output come FileNumber Close FileNumber Path = "D: \ Articles \ 2019 \ File 2 .txt "FileNumber = FreeFile Apri percorso per output come FileNumber Chiudi FileNumber End Sub 

Ora eseguirò di nuovo il codice riga per riga premendo il tasto F8.

Dice 1 come al solito.

Ora passerò al livello successivo.

Anche nel secondo tentativo si dice 1.

Il motivo è che abbiamo utilizzato l'istruzione Close file FreeFile riconosce il file appena aperto come nuovo e restituisce il numero intero come 1.