¿cómo copiar un archivo de excel usando vba?
Puede usar código VBA para copiar un archivo (libro de trabajo) de una carpeta a otra o también puede copiar un archivo a la misma carpeta con un nombre diferente.
En este tutorial, veremos cómo escribir código en ambas direcciones. Aquí debe utilizar FileSystemObject , que proporciona acceso a archivos y carpetas en Windows.
Copie un archivo de Excel a una carpeta separada
Sub myMacro() Dim myFile As Object Set myFile = CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True) End Sub
Para escribir el código anterior:
- Primero, necesitas declarar una variable.
- A continuación, debe especificar FileSystemObject en la variable que acaba de definir.
- A continuación, debe configurar la ubicación de origen en el método «CopyFile».
- Al final, establezca la ubicación de la carpeta donde desea pegarlo.
Cuando ejecuta esta macro , copia el “archivo de texto” del libro de Excel de la carpeta y lo pega en la ubicación que especificamos en el código.
Copiar un archivo y cambiarle el nombre
Cuando intenta copiar y pegar un archivo en la misma ubicación, es muy probable que VBA le muestre un error. En esta situación, la mejor manera es cambiar el nombre del archivo al copiarlo.
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True)
Arriba está el código de línea que utilicé en el método anterior. Ahora necesitas hacer un cambio solo en esta fila. Para la ubicación de destino, debe agregar el archivo que desea usar para el nuevo archivo.
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\folder\test-file1.xlsx ", True)
Cuando ejecuta este código, copia el archivo (archivo de texto.xlsx) de la carpeta y lo copia en la misma carpeta con un nombre diferente (archivo de prueba1.xlsx).
Dim myFile As Object Set myFile = _ CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", _ "C:\Users\admin\Desktop\folder\test-file1.xlsx", True) End Sub