Excel VBA GetObject

VBA GetObject, como el nombre, parece que necesitamos crear un código para obtener o crear un objeto. Pero, de hecho, es el proceso de obtener las Tablas de cualquier palabra para sobresalir el archivo. En VBA GetObject, recuperamos los datos de un archivo de palabras colocando la ubicación donde se guardan y agregamos cualquier número de tablas de esa palabra en la hoja de Excel.

Sintaxis de VBA GetObject

La sintaxis se explica como se muestra a continuación:

  • PathName = Aquí daremos la ruta al documento de Word donde se guarda. Este campo es opcional.
  • Clase = Aquí, necesitamos definir la función Clase de objeto. Este es demasiado opcional. Pero si no estamos definiendo el PathName en la sintaxis, se deberá definir la Clase.

Ambos argumentos de la sintaxis son opcionales. Pero cualquiera de ellos debe ser definido.

Aquí, usaremos appname.objecttype para definir la Clase. AppName será la aplicación o el tipo de archivo desde el que buscaremos los datos y Objecttype será el tipo de aplicación de archivo que usaremos.

Ejemplo de función GetObject en Excel VBA

Veremos cómo obtener los datos que están en forma de tabla en un documento de Word y anexar esos datos en la hoja de cálculo de Excel.

Puede descargar esta plantilla VBA GetObject Excel aquí - Plantilla VBA GetObject Excel

Para esto, requerimos tales datos en el archivo de Word. Aquí, tenemos un archivo de Word a continuación, que tiene 2 tablas de nombre de empleado e ID de empleado.

Hemos guardado este archivo en algún lugar de nuestro disco local al que es fácil acceder. Siga los pasos a continuación para usar la función GetObject en Excel VBA.

Paso 1: vaya a la ventana de VBA y abra un Módulo desde la pestaña del menú Insertar como se muestra a continuación.

Paso 2: en el módulo recién abierto, escriba la subcategoría de GetObject de VBA o puede elegir cualquier otro nombre según sea necesario.

Paso 3: Primero, defina la variable 2 Object para acceder al Object preparado por VBA GetObject.

Paso 4: Necesitaríamos otra variable para la cual almacenaremos la ubicación de Archivo como Cadena.

Paso 5: Para evitar cualquier interrupción si ocurre un error, continuaremos reanudando el siguiente paso.

Paso 6: Ahora usaríamos la función GetObject y la configuraríamos como objeto WordFile . Manteniendo Path en blanco, definiremos la Clase como Word. Aplicación donde Word es la aplicación de Microsoft.

Paso 7: Para evitar el error número 429 que generalmente ocurre en este caso, lo borraremos a medida que ocurra.

Paso 8: Ahora haga visible la variable Object creada WordFile .

Paso 9: como no hemos definido la ruta, asignaremos la ubicación del archivo a StrDoc junto con la extensión.

Paso 10: Si no encontramos nada en el archivo de Word, deberíamos recibir un mensaje que indica que "No hay datos disponibles" o "Documento no encontrado". Y esto se haría en el bucle If-End If.

Paso 11: Ahora active el archivo de Word.

Paso 12: Realice el mismo procedimiento para configurar WordDoc también. Si WordDoc no es nada, abriremos el archivo desde la ubicación donde se guarda.

Paso 13: Ahora necesitaremos definir las variables que ayudarán a acceder a la tabla desde el documento de Word. Con esto crearemos una tabla con filas y columnas.

Paso 14: Como todos sabemos, el vértice de las células es bidimensional. Entonces, a partir de la celda, necesitaríamos 2 variables donde definiremos la ubicación desde donde necesitamos comenzar nuestra tabla en Excel. Aquí, hemos considerado esa posición en (1, 1) que está en la celda de la hoja.

Paso 15: en esta etapa, debemos verificar el número de tablas en el archivo de Word. Y si no se encuentran tablas, entonces deberíamos recibir el mensaje para eso.

Paso 16: en este paso, debemos acceder a la tabla desde el documento de Word y asignarla en el archivo de Excel. Para esto, usaremos el bucle For para cada fila y columna.

Paso 17: Finalmente, saldremos del documento una vez que agregue los datos de Word al archivo de Excel sin guardar el archivo.

Paso 18: Ahora ejecute el código anterior presionando la tecla F5 o haciendo clic en el botón Reproducir.

Veremos que los datos que hemos visto al comienzo del artículo, que estaban separados en 2 tablas diferentes, ahora se adjuntan en una sola tabla en la hoja de Excel.

A continuación se muestra el código completo en una secuencia:

Código:

 Sub VBA_GetObject () Dim WordFile As Object Dim WordDoc As Object Dim StrDoc As String On Error Resume Next Set WordFile = GetObject (, "Word.Application") If Err.Number = 429 Then Err.Clear Set WordFile = CreateObject ("Word. Aplicación ") Finalizar si WordFile.Visible = True StrDoc =" D: \ Input \ Test.docx "If Dir (StrDoc) =" "Entonces MsgBox StrDoc & vbCrLf &" No encontrado en la ruta mencionada "& vbCrLf &" C: \ Ubicación de entrada ", vbExclamation, " Nombre del documento no encontrado "Salir Sub End Si WordFile.Activate Set WordDoc = WordFile.Documents (StrDoc) Si WordDoc no es nada, entonces establezca WordDoc = WordFile.Documents.Open (" D: \ Input \ Test. docx ") WordDoc.Activate Dim Tble como Integer Dim RowWord Como Long Dim ColWord Como Integer Dim A Como Long Dim B Tan Long A = 1 B = 1 Con WordDoc Tble = WordDoc.Tables.Count If Tble = 0 Then MsgBox" No Tables Disponible ", vbExclamation, " Nada que importar "Salir Sub End If For i = 1 To Tble With .Tables (i) For RowWord = 1 To .Rows.Count For ColWord = 1 To .Columns.Count Cells (A, B) = WorksheetFunctio n.Clean (.cell (RowWord, ColWord) .Range.Text) B = B + 1 Next ColWord B = 1 A = A + 1 Next RowWord Fin con el siguiente final con WordDoc.Cerrar Savechanges: = False WordFile.Quit Establecer WordDoc = Nothing Set WordFile = Nothing End Sub 

Pros de Excel VBA GetObject

  • Es bastante útil para importar el gran conjunto de datos del archivo de Word al archivo de Excel.
  • Podemos importar cualquier tipo de datos desde cualquier tipo de archivo simplemente cambiando la extensión de los mismos.

Cosas para recordar

  • Cierre todos los archivos de palabras antes de ejecutar el código.
  • Dé la extensión adecuada al archivo que se está utilizando.
  • GetObject no se puede usar para acceder a la referencia a la clase.

Artículos recomendados

Esta es una guía de VBA GetObject. Aquí discutimos cómo usar la función GetObject en VBA para obtener los datos de un archivo de Word en la hoja de Excel junto con un ejemplo práctico y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. VBA GetOpenFileName
  2. Panel de KPI en Excel
  3. Libro de trabajo de VBA abierto
  4. Excel Word Count
  5. Excel VBA en error reanudar siguiente

Categoría: