Copiar archivo VBA: 5 ejemplos para copiar y pegar

脥ndice
  1. Copiar un archivo VBA
    1. Ejemplo 1: copiar un archivo
    2. Ejemplo 2: copiar un archivo usando variables
    3. Ejemplo 3: copiar un archivo seg煤n los valores de celda
    4. Ejemplo 4: verificar la existencia del archivo antes de copiar VBA
    5. Ejemplo 5: evitar errores al copiar archivos
  2. Posibles errores
  3. Notas sobre la copia de archivos

Visual Basic nos da acceso a partes del entorno de Windows; por lo tanto, hay muchas actividades basadas en archivos que podemos realizar con VBA. Uno de ellos es utilizar VBA para copiar un archivo.

En esta publicaci贸n, analizamos 5 ejemplos de c贸mo lograrlo.

Tabla de contenido
  • Copiar un archivo VBA
    • Ejemplo 1: copiar un archivo
    • Ejemplo 2: copiar un archivo usando variables
    • Ejemplo 3: copiar un archivo seg煤n los valores de celda
    • Ejemplo 4: verificar la existencia del archivo antes de copiar VBA
    • Ejemplo 5: evitar errores al copiar archivos
  • Posibles errores
  • Notas sobre la copia de archivos

Copiar un archivo VBA

En esta publicaci贸n, utilizamos el m茅todo FileCopy b谩sico. Para opciones m谩s avanzadas, podemos usar las Opciones de sistemas de archivos.

Ejemplo 1: copiar un archivo

El siguiente ejemplo copia el archivo de ejemplo.xlsx de C:UsersmarksDocuments a C:UsersmarksDocumentsTest .

Sub VBACopyFile()FileCopy "C:UsersmarksDocumentsExample File.xlsx", _ "C:UsersmarksDocumentsTestExample File.xlsx"End Sub

Nota: En este ejemplo, el nombre del archivo no se modifica.

Ejemplo 2: copiar un archivo usando variables

En el Ejemplo 1, los nombres de los archivos se incluyeron dentro de la declaraci贸n FileCopy. Sin embargo, tambi茅n se pueden proporcionar como variables.

En el siguiente c贸digo:

  • Las variables son declaradas (es decir, creadas)
  • Se asignan valores a las variables.
  • Las variables se utilizan en la declaraci贸n FileCopy.
Sub VBACopyFileVariables()'Declarar variablesDim copyFromFile As StringDim copyToFile As String'Asignar valores a las variablescopyFromFile = "C:UsersmarksDocumentsExample File.xlsx"copyToFile = "C:UsersmarksDocumentsExample File Copied.xlsx"'Usar variables en FileCopy StatementFileCopy copyFromFile, copyToFileEnd Sub

Nota: En este ejemplo, el archivo no se copia a una nueva ubicaci贸n, sino que se le cambia el nombre de Archivo de ejemplo.xlsx a Archivo de ejemplo copiado.xlsx.

Ejemplo 3: copiar un archivo seg煤n los valores de celda

En este ejemplo, copiamos un archivo utilizando rutas de archivo contenidas en los valores de celda.

Mire la captura de pantalla a continuaci贸n. La celda C2 contiene la ruta del archivo actual y la celda C4 contiene la ruta a la que se copiar谩 el archivo.

Copiar archivo de VBA usando valores de celda

Podemos ejecutar la siguiente macro para cambiar el nombre de un archivo usando estos valores de celda.

Sub VBACopyFileSheetNames()FileCopy ActiveSheet.Range("C2"), _ ActiveSheet.Range("C4")End Sub

Nota: En este ejemplo, el archivo se copia a una nueva carpeta y tambi茅n se le cambia el nombre de Archivo de ejemplo.xlsx a Archivo de ejemplo copiado.xlsx.

Ejemplo 4: verificar la existencia del archivo antes de copiar VBA

El comando FileCopy felizmente sobrescribir谩 un archivo sin mostrar ning煤n error. Por lo tanto, es una buena idea comprobar si un archivo ya existe antes de copiarlo.

El siguiente c贸digo comprueba la existencia de un archivo en la ubicaci贸n de destino. Si existe un archivo, aparece un cuadro de mensaje con opciones S铆/No. Al hacer clic en No, existe la macro.

Sub VBACheckTargetFileCopyFile()'Declarar variablesDim copyFromFile As StringDim copyToFile As StringDim msgBoxAnswer As Long'Asignar variables a nombres de archivos copyFromFile = "C:UsersmarksDocumentsExample File.xlsx"copyToFile = "C:UsersmarksDocumentsTestExample File Copied.xlsx"'Compruebe si el archivo ya existeIf Dir (copyToFile) "" Luego 'Mostrar el cuadro de mensaje y capturar la respuesta msgBoxAnswer = MsgBox(Prompt:="El archivo ya existe en esa ubicaci贸n." _ vbNewLine "驴Desea sobrescribirlo?", Botones:=vbYesNo, _ T铆tulo:= "Copiando archivo") 'Si la respuesta es No, existe la macro. Si msgBoxAnswer = vbNo Entonces 'Salir de la macro Salir Sub End IfEnd Si'El archivo no existe o se hace clic en S铆 para continuarFileCopy copyFromFile, copyToFileEnd Sub

Ejemplo 5: evitar errores al copiar archivos

Copiar archivos puede provocar errores; Los errores se describen en la secci贸n siguiente. El siguiente c贸digo se basa en el Ejemplo 4 y tambi茅n proporciona un cuadro de mensaje de error si se produce alg煤n error.

Sub VBAAdvancedCopyFile()'Declarar variablesDim copyFromFile As StringDim copyToFile As StringDim msgBoxAnswer As Long'Asignar variables a nombres de archivos copyFromFile = "C:UsersmarksDocumentsExample File.xlsx"copyToFile = "C:UsersmarksDocumentsTestExample File Copied.xlsx"En caso de error Reanudar Siguiente'Compruebe si el el archivo ya existeSi Dir(copyToFile) "" Luego 'Mostrar el cuadro de mensaje y capturar la respuesta msgBoxAnswer = MsgBox(Prompt:="El archivo ya existe en esa ubicaci贸n." _ vbNewLine "驴Desea sobrescribirlo?", Botones:=vbYesNo, _ T铆tulo:="Copiando archivo") 'Si la respuesta es No, existe la macro. Si msgBoxAnswer = vbNo Entonces 'Salir de la macro Salir Sub End IfEnd Si'El archivo no existe o se hace clic en S铆 para continuarFileCopy copyFromFile, copyToFile'Mostrar mensaje si se produjo un error Si Err.Number 0 Entonces Mensaje de MsgBox:="No se puede copiar el archivo", Botones:=vbOK, _ T铆tulo:="Error al copiar el archivo"Finalizar si'Activar nuevamente la verificaci贸n de erroresEn Error Ir a 0End Sub

Posibles errores

Copiar un archivo durante la automatizaci贸n puede provocar errores. A continuaci贸n se muestran algunos de los errores comunes del proceso de copia de archivos de VBA.

Copiar un archivo que no existe genera un error: Error de tiempo de ejecuci贸n '53': Archivo no encontrado .

Error de cambio de nombre de archivo de VBA

Copiar un archivo en una ubicaci贸n de archivo que est谩 bloqueada (es decir, otro usuario tiene el archivo abierto) genera un error: Error de tiempo de ejecuci贸n '70': Permiso denegado

Copiar a un archivo que ya est谩 abierto

Notas sobre la copia de archivos

Para finalizar esta publicaci贸n, solo hay algunas cosas que debes tener en cuenta:

  • Hemos utilizado libros de Excel en los ejemplos, pero podemos utilizar cualquier tipo de archivo.
  • FileCopy no puede copiar carpetas completas, solo archivos.
  • El comando FileCopy es el c贸digo central de Visual Basic. Este c贸digo lo encontramos en otras aplicaciones de Windows como Word y PowerPoint .
  • Consulte esta publicaci贸n para obtener m谩s c贸digos de ejemplo para administrar archivos y carpetas: C贸digo VBA para copiar, mover, eliminar y administrar archivos .

Adem谩s, consulte la biblioteca de c贸digos VBA para obtener cientos de fragmentos de c贸digo reutilizables.


Deja una respuesta

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *

Subir

Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra pol铆tica de cookies. Leer mas...