VBA FreeFile | Com s'utilitza la funció FreeFile a Excel VBA?

Excel VBA FreeFile

FreeFile és una funció de VBA que només està disponible com a funció VBA i no com a funció de full de càlcul. La funció VBA FreeFile retorna el número enter únic al fitxer obert i conserva el número del següent número de fitxer disponible.

Normalment obrim fitxers des del nostre ordinador per escriure alguna cosa o només de lectura, mentre que ens referim a aquests fitxers hem de referir-los amb un nombre enter únic. La funció VBA FreeFile ens permet determinar aquell nombre enter únic que cal assignar a l’obertura del fitxer per llegir, escriure i obrir fitxers mitjançant VBA.

Ara mireu la sintaxi de la sentència OPEN.

OPEN [Adreça del camí de fitxers] Per a [Mode a obrir] com a [Número de fitxer]

Adreça del camí del fitxer: Hem d’esmentar l’adreça del fitxer del nostre equip que estem intentant obrir.

Mode per obrir: En obrir el fitxer, hem de ser conscients de quin tipus de model aplicarem. Aquí podem utilitzar tres modes, "Mode d'entrada", "Mode de sortida" i "Mode d'afegir".

Mode d'entrada per llegir només el fitxer.

Mode de sortida per esborrar les dades existents i inserir dades noves.

Afegeix el mode per afegir dades noves mentre es conserven les dades existents.

Número d'arxiu: Amb aquest argument, podem referir-nos al fitxer que estem obrint. Aquí, on la funció "FreeFile" té un paper vital i retorna el nombre enter únic.

Com s'utilitza la funció FreeFile a Excel VBA?

Podeu descarregar aquesta plantilla Excel de VBA FreeFile aquí - Plantilla Excel de VBA FreeFile

Ara mireu el codi següent.

Codi:

 Sub FreeFile_Example1 () Atenua el camí com a cadena Enumereix el número de fitxer Com a camí enter = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Open Path per a la sortida com a FileNumber Path = "D: \ Articles \ 2019 \ File 2.txt "FileNumber = Camí obert de fitxer lliure per a la sortida com a subfin 

Ara deixeu-me descodificar el codi anterior perquè entengueu.

Primer he declarat dues variables.

 Atenuar el camí com a cadena, atenuar el número de fitxer com a enter 

Després he assignat la ruta del fitxer amb el seu nom.

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

Després, per a la variable més, he assignat la funció FREEFILE.

FileNumber = FreeFile

A continuació, he utilitzat la declaració Open per obrir el fitxer de text a la ruta del fitxer esmentada anteriorment.

 Obre el camí per a la sortida com a número de fitxer

D'acord, ara executaré línia per línia prement la tecla F8 i veuré el valor de la variable "FileNumber".

Es mostra el número de fitxer com 1. Per tant, la funció de fitxer gratuït es reserva automàticament aquest número al fitxer d'obertura. Mentre s'executa, no s'obren cap altre fitxer.

Ara continuaré executant la següent línia de codi VBA i veuré quin és el número de fitxer si passo a la següent línia.

Ara diu 2. Així, la funció FreeFile reserva el número enter únic 2 al segon fitxer d'obertura.

La funció FreeFile sempre retorna 1 si tanquem el fitxer Excel

Una cosa que hem de mirar és que la funció VBA "FreeFile" sempre retorna 1 si tanquem el fitxer obert abans d'obrir el segon fitxer Excel.

Per exemple, mireu el codi següent.

Codi:

 Sub FreeFile_Example2 () Atenua el camí com a cadena Enumereix el número de fitxer Com a camí enter = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Obre el camí per a la sortida com a FileNumber Tanca FileNumber Path = "D: \ Articles \ 2019 \ File 2 .txt "FileNumber = Camí obert de fitxer lliure per a la sortida com a número de fitxer Tanca el número de fitxer 

Ara tornaré a executar el codi línia per línia prement la tecla F8.

Diu 1 com de costum.

Ara avançaré al següent nivell.

Fins i tot en el segon intent, diu 1.

El motiu d'això és que hem utilitzat la instrucció Tancar fitxer FreeFile reconeix el fitxer recentment obert com a nou i retorna el número enter com a 1.