FreeFile de VBA

Excel VBA FreeFile

FreeFile es una función en VBA que está disponible solo como una función de VBA, no como una función de hoja de trabajo. La función VBA FreeFile devuelve el número entero único al archivo que se abre y conserva el número para el siguiente número de archivo disponible.

Por lo general, abrimos archivos desde nuestra computadora para escribir algo o para solo lectura, mientras que nos referimos a esos archivos con un número entero único. La función FreeFile de VBA nos permite determinar ese número entero único para asignar al abrir el archivo para leer, escribir y abrir archivos usando VBA.

Ahora observe la sintaxis de la instrucción OPEN.

ABRIR [Dirección de ruta de archivo] para [Modo para abrir] como [Número de archivo]

Dirección de la ruta del archivo: debemos mencionar la dirección del archivo en nuestra computadora que estamos intentando abrir.

Modo para abrir: Al abrir el archivo, debemos saber qué tipo de modelo vamos a aplicar. Podemos usar tres modos aquí, "Modo de entrada", "Modo de salida" y "Modo de adición".

Modo de entrada para leer solo el archivo.

Modo de salida para borrar los datos existentes e insertar nuevos datos.

Modo de agregar para agregar nuevos datos mientras retiene los datos existentes

Número de archivo: con este argumento podemos hacer referencia al archivo que estamos abriendo. Aquí donde la función "FreeFile" juega un papel vital y devuelve el número entero único.

¿Cómo usar la función FreeFile en Excel VBA?

Puede descargar esta plantilla de Excel de VBA FreeFile aquí - Plantilla de Excel de VBA FreeFile

Ahora, mire el siguiente código.

Código:

 Sub FreeFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Abrir ruta para salida como FileNumber Path = "D: \ Articles \ 2019 \ File 2.txt "FileNumber = FreeFile Abrir ruta para salida como FileNumber End Sub 

Ahora déjame decodificar el código anterior para que lo entiendas.

Primero he declarado dos variables.

 Atenuar ruta como cadena, atenuar FileNumber como entero 

Luego le he asignado la ruta del archivo con su nombre.

Ruta = "D: \ Articles \ 2019 \ Archivo 1.txt"

Luego, para una variable más, he asignado la función FREEFILE.

FileNumber = FreeFile

Luego utilicé la instrucción Open para abrir el archivo de texto en la ruta del archivo mencionada anteriormente.

 Abrir ruta para salida como número de archivo

Ok, ahora ejecutaré código línea por línea presionando la tecla F8 y veré el valor de la variable "FileNumber".

Muestra el número de archivo como 1. Por lo tanto, la función de archivo gratuito reserva automáticamente este número para el archivo de apertura. Mientras se ejecuta esto, no se abren otros archivos.

Ahora seguiré ejecutando la siguiente línea de código VBA y veré cuál es el número de archivo si salto a la siguiente línea.

Ahora dice 2. Entonces, la función FreeFile reserva el número entero único 2 para el segundo archivo de apertura.

La función FreeFile siempre devuelve 1 si cerramos el archivo de Excel

Una cosa que debemos tener en cuenta es que la función "FreeFile" de VBA siempre devuelve 1 si cerramos el archivo abierto antes de abrir el segundo archivo de Excel.

Por ejemplo, mire el siguiente código.

Código:

 Sub FreeFile_Example2 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Abrir ruta para salida como FileNumber Cerrar FileNumber Path = "D: \ Articles \ 2019 \ File 2 .txt "FileNumber = FreeFile Abrir ruta para salida como FileNumber Cerrar FileNumber End Sub 

Ahora volveré a ejecutar el código línea por línea presionando la tecla F8.

Dice 1 como de costumbre.

Ahora pasaré al siguiente nivel.

Incluso en el segundo intento dice 1.

La razón de esto es que hemos usado la instrucción Cerrar archivo. FreeFile reconoce el archivo recién abierto como el nuevo y devuelve el número entero como 1.