|
Responder ![]() |
Autor | |
alfonsoy ![]() Habitual ![]() Unido: 21/Mayo/2013 Localización: España Estado: Sin conexión Puntos: 82 |
![]() Enviado: 06/Octubre/2021 a las 10:59 |
Hola buenos días,
Quería ver si me podían ayudar con este problema que tengo. Desde Access tengo una rutina que carga un documento de Word y a continuación localiza un determinado texto. Hasta aquí no hay ningún problema. El problema viene cuando ese texto que busco está dentro de una tabla en el documento , es ahí cuando no localiza el patrón de búsqueda. Utilizo el método selection.Find Selection.Find.Text = "Patrón de busqueda" Selection.Find.Execute Por favor me podrían ayudar ? Muchas gracias. |
|
![]() |
|
Mihura ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13814 |
![]() |
Una tabla lo que contiene son celdas, así que, tendrás que recorrer las tablas que tengas en el documento word y sus celdas asociadas.
Para hacer referencia al texto de una celda en concreto: ActiveDocument.Tables(1).Cell(1, 1).Range.Text
|
|
![]() |
|
prga ![]() Moderador ![]() Unido: 16/Noviembre/2004 Localización: España Estado: Sin conexión Puntos: 3510 |
![]() |
Hola.
En office 2019, en otras versiones ni idea, el siguiente código sacado con la grabadora de macros y añadiendo el objeto word: Dim miword As Object Set miword = CreateObject("word.application") miword.Visible = True miword.documents.Add CurrentProject.Path & "\prova1.docm" miword.Selection.Find.ClearFormatting With miword.Selection.Find .Text = "mitextobúsqueda" .Replacement.Text = "" .Forward = True .Wrap = 1 '''''wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With miword.Selection.Find.Execute encuentra el mitextobúsqueda en una tabla metida dentro de una celda de otra tabla Espero que ayude a resolver la duda. Ya comentas. Un saludo a todos
|
|
![]() |
|
alfonsoy ![]() Habitual ![]() Unido: 21/Mayo/2013 Localización: España Estado: Sin conexión Puntos: 82 |
![]() |
Gracias por vuestra ayuda , al final el campo a localizar no estaba en una tabla sino en un cuadro de texto, pero el problema era exactamente el mismo , no me localizaba el patrón de búsqueda. @prga . Con esa rutina no me funcionaba (utilizo Word 2010) pero me ha servido como base para la solución final recorriendo en bucle las formas tipo textBox y buscando en cada una de ellas. Sub buscaTextBox() Dim shp As Shape For Each shp In ActiveDocument.Shapes If shp.Type = msoTextBox Then shp.Select Selection.ShapeRange.TextFrame.TextRange.Select If existeTexto("GF/21003777") Then Exit For End If End If Next End Sub Function existeTexto(strTexto As String) As Boolean With Selection.Find .ClearFormatting .Text = strTexto .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute End With If Selection.Find.Found Then existeTexto = True Else existeTexto = False End If End Function Este hilo ya se puede cerrar y nuevamente gracias a todos. |
|
![]() |
Responder ![]() |
|
Tweet
|
Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |