puede pasar online jalar importar gratis documento desde datos convertir convertidor como archivo abrir excel-vba word-vba

excel vba - pasar - Extraiga datos del documento de Word en una Hoja de cálculo de Excel



pasar base de datos de word a excel (1)

aquí hay algún código que hace uso del enlace tardío (declarar objetos en lugar de word.application, etc.). Desde Excel 2003 ,

  1. abre un documento WORD
  2. busca la cadena "stock mínimo"
  3. mueve el cursor algunas líneas / palabras más allá
  4. expande / selecciona el cursor WORD
  5. pega esta selección WORD en EXCEL

los pasos 2-5 se repiten para "Período de informe:" (tenga en cuenta que ":" es un límite de palabra, por lo que tenemos que saltar 8 palabras a la derecha para llegar a la fecha)

Para WORD, copié el texto de su Q tal como está (sin tabla, solo texto sin formato). Si usa tablas en su lugar, puede que necesite jugar con las unidades de las distintas declaraciones de Move (por ejemplo, para la unit:=12 celdas unit:=12 ); la estrategia sigue siendo la misma: encuentre un texto constante, mueva el cursor al destino final, expanda la selección, cree un rango de palabras y transfiera.

Ambos elementos se colocan en la celda actual en Excel y su vecino de la derecha.

Sub GrabUsage() Dim FName As String, FD As FileDialog Dim WApp As Object, WDoc As Object, WDR As Object Dim ExR As Range Set ExR = Selection '' current location in Excel Sheet ''let''s select the WORD doc Set FD = Application.FileDialog(msoFileDialogOpen) FD.Show If FD.SelectedItems.Count <> 0 Then FName = FD.SelectedItems(1) Else Exit Sub End If '' open Word application and load doc Set WApp = CreateObject("Word.Application") '' WApp.Visible = True Set WDoc = WApp.Documents.Open(FName) '' go home and search WApp.Selection.HomeKey Unit:=6 WApp.Selection.Find.ClearFormatting WApp.Selection.Find.Execute "Minimum Stock" '' move cursor from find to final data item WApp.Selection.MoveDown Unit:=5, Count:=1 WApp.Selection.MoveRight Unit:=2, Count:=2 '' the miracle happens here WApp.Selection.MoveRight Unit:=2, Count:=1, Extend:=1 '' grab and put into excel Set WDR = WApp.Selection ExR(1, 1) = WDR '' place at Excel cursor ''repeat WApp.Selection.HomeKey Unit:=6 WApp.Selection.Find.ClearFormatting WApp.Selection.Find.Execute "Period of Report:" WApp.Selection.MoveRight Unit:=2, Count:=8 WApp.Selection.MoveRight Unit:=2, Count:=3, Extend:=1 Set WDR = WApp.Selection ExR(1, 2) = WDR '' place in cell right of Excel cursor WDoc.Close WApp.Quit End Sub

Puede crear un botón y llamar a ese sub desde allí, o vincular GrabUsage () a una tecla de función.

WApp.Visible = True porque en producción no quiere que WORD aparezca, pero lo necesitará para depurar y jugar con los movimientos del cursor.

La desventaja de la vinculación tardía (y no utilizar referencias a la biblioteca de Word) es la codificación de unidades (6 = historia, 5 = línea, 2 = palabra) en lugar de utilizar enumeraciones de palabras, pero a veces obtengo bloqueos de SO con enlaces anticipados. .. no muy sexy, pero parece funcionar.

El objeto FileDialog necesita una referencia a la Biblioteca de Office de MS Office. AFAIK es estándar en Excel 2003, pero es mejor verificar que bloquear.

Y no incluí el código para verificar si los artículos realmente se encuentran; Dejo esto a tu creatividad.

Espero que ayude.

Tengo el requisito de extraer un valor de un documento de Word a diario y escribirlo en un libro de Excel. Actualmente hago esto manualmente y es frontera para el método más eficiente para mí

  1. Usando el archivo de Excel, cree un script vba y agregue cualquier referencia de documento de Word.

2 Usando la palabra navegue a la tabla "9. STOCKS ... "(extraje el ejemplo a continuación - Apéndice A) y lea el uso diario de Diesel (ltrs) resaltado en rojo.

3. Escribe este valor en una celda de hoja de cálculo.

  1. La fecha para este valor también es clave, pero se mantuvo en otra parte del documento de Word (Apéndice B). Las fechas también están en el nombre del archivo, pero confiamos más en el valor interno que en el nombre del documento. Con el conocimiento de los puntos 3 y 4, extraiga la fecha asociada a una celda de hoja de cálculo adyacente.

La tabla se muestra a continuación, debido al formato no puedo enviarle la tabla exacta pero podré enviar los valores de la misma.

9. ESTOCOS (A partir de las 00:01 horas del día del problema del informe). Stock Held Daily Useage Stock mínimo

Diesel (ltrs)
390436 15012 25000

Nitrógeno (mm)
35 1 19 Champion 1033 (totes)
15 1 4 Nexguard (Calderas) 4
0.25 4 x 200 ltrs

Apéndice B: Período de Beatrice del informe: 00:01 - 24:00 10 de agosto de 2010

Si tiene dudas con respecto a mi pregunta, por favor vuelva a contactarme, agradezco su esfuerzo y quiero agradecerle de antemano