Problema haciendo una busqueda y replazo con VB Script

Iniciado por Gallusser, 11 Enero 2011, 15:32 PM

0 Miembros y 1 Visitante están viendo este tema.

Gallusser

Muy buen día hoy me registre en el foro, y como persona educada me presento ante ustedes, soy de Guatemala y mi nombre es Oscar, me  gusta mucho la programacion.

ahora entro en el tema central de mi problema:

Estoy haciendo un Script en VB para que me abra un documento de Word, que haga una busqueda y replace un texto en el documento. EL Script abre bien el documento pero no hace la busqueda ni el remplazo, he estado navegando por todos lados buscando soluciones pero nada me aclara el problema para poder encontrar el error, espero que ustedes me puedan ayuda, aqui le pongo el codigo de mi script.

Código (vb) [Seleccionar]
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("drive:\ruta\Nombre del archivo.doc")
objword.visible = true

ObjWord.Selection.Find.ClearFormatting  
ObjWord.Selection.Find.Replacement.ClearFormatting  
     
With ObjWord.Selection.Find
       .Text = "Texto a cambiar"
       .Replacement.Text = "Texto nuevo"
       .Forward = True  
       .Wrap = wdFindContinue
       .Format = False  
       .MatchCase = False  
       .MatchWholeWord = False  
       .MatchWildcards = False  
       .MatchSoundsLike = False  
       .MatchAllWordForms = False

End With  
ObjWord.Selection.Find.Execute


Como podran ver al final del Script pongo que ejecute la busqueda y el replazo, asi no me da ningun error pero no hace el bambio, en internet he encontrado que la instruccion final deberia de ser ObjWord.Selection.Find.Execute Replace:=wdReplaceAll, pero al ponerlo asi el Script me devuelve un error diciendo Expected statement, con el codigo 800A0400, en la linea final, he probado ponerlo entre parentesis y lo unico que hace es cambiar el error.

Alguien podra ayudarme a resolver este dilema. :huh:

Gracias

Novlucker

Lo que ocurre es que tal y como lo estas haciendo estas pasando parametros por nombre, y vbs no lo acepta (Replace:=wdReplaceAll). Lo que debes de hacer es llamar a la función pasando todos los parametros directamente.

Código (vb) [Seleccionar]
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("drive:\ruta\Nombre del archivo.doc")
objword.visible = true

ObjWord.Selection.Find.ClearFormatting 
ObjWord.Selection.Find.Replacement.ClearFormatting 

With ObjWord.Selection.Find
.Replacement.ClearFormatting
.Execute "Texto a cambiar",False,False,False,False,False,True,1,True,"Texto nuevo",2
End with

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.find.execute%28v=office.11%29.aspx

Fijate que además se deben de pasar los valores de las constantes :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Gallusser

Bien dice que el que sabe sabe, los demas son jefes,  :laugh:, te agradezco mucho tu ayuda en realidad funciono bien como yo quiera.

Gracias  ;-)

Novlucker

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein