Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Gallusser en 11 Enero 2011, 15:32 pm



Título: Problema haciendo una busqueda y replazo con VB Script
Publicado por: Gallusser en 11 Enero 2011, 15:32 pm
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
  1. Set objWord = CreateObject("Word.Application")
  2. Set objDoc = objWord.Documents.Open("drive:\ruta\Nombre del archivo.doc")
  3. objword.visible = true
  4.  
  5. ObjWord.Selection.Find.ClearFormatting  
  6. ObjWord.Selection.Find.Replacement.ClearFormatting  
  7.  
  8. With ObjWord.Selection.Find
  9.        .Text = "Texto a cambiar"
  10.        .Replacement.Text = "Texto nuevo"
  11.        .Forward = True  
  12.        .Wrap = wdFindContinue
  13.        .Format = False  
  14.        .MatchCase = False  
  15.        .MatchWholeWord = False  
  16.        .MatchWildcards = False  
  17.        .MatchSoundsLike = False  
  18.        .MatchAllWordForms = False
  19.  
  20. End With  
  21. 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


Título: Re: Problema haciendo una busqueda y replazo con VB Script
Publicado por: Novlucker en 11 Enero 2011, 16:14 pm
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
  1. Set objWord = CreateObject("Word.Application")
  2. Set objDoc = objWord.Documents.Open("drive:\ruta\Nombre del archivo.doc")
  3. objword.visible = true
  4.  
  5. ObjWord.Selection.Find.ClearFormatting  
  6. ObjWord.Selection.Find.Replacement.ClearFormatting  
  7.  
  8. With ObjWord.Selection.Find
  9. .Replacement.ClearFormatting
  10. .Execute "Texto a cambiar",False,False,False,False,False,True,1,True,"Texto nuevo",2
  11. 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


Título: Re: Problema haciendo una busqueda y replazo con VB Script
Publicado por: Gallusser en 11 Enero 2011, 16:26 pm
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  ;-)


Título: Re: Problema haciendo una busqueda y replazo con VB Script
Publicado por: Novlucker en 11 Enero 2011, 17:01 pm
Excelente! ;D

Saludos