Macro para cambiar varias líneas de otra macro
Tengo una macro que abre todos los libros Excel contenidos en una carpeta y cambia un texto concreto de una línea de código VBA.
Estoy intentando modificarla para que pueda cambiar varias líneas pero no lo consigo, he intentado referenciarlo al texto contenido en otras celdas pero no lo consigo.
Este es el código:
Sub modificar_macros_archivos()
ChDir (ActiveWorkbook.Path)
arcact = ActiveWorkbook.Name
Dim arch As String
arch = Dir("*.xlsm")
Do Until arch = ""
If arch = arcact Then GoTo Salto
Workbooks.Open Filename:=arch
With Application.VBE.ActiveVBProject
On Error Resume Next
'se recorre desde 1 hasta el total de objetos del proyecto
For ele = 1 To .VBComponents.Count
'se excluye el módulo donde está esta macro
If .VBComponents(ele).Name <> "Módulo15" Then
'se cuentan las líneas en el objeto que se está observando
LineasCod = .VBComponents(ele).codemodule.CountOfLines
'si el total de líneas es > 0 'busca en cada línea el texto
If LineasCod > 0 Then
For x = 1 To LineasCod
cadena = .VBComponents(ele).codemodule.Lines(x, 1)
'si el texto buscado se encuentra en la línea se lo reemplaza por el nuevo
If InStr(1, cadena, "ThisWorkbook.Close") > 0 Then
cadena = Application.WorksheetFunction.Substitute(cadena, "ThisWorkbook.Close", "'ThisWorkbook.Close")
'se reemplaza la línea por la nueva cadena
.VBComponents(ele).codemodule.replaceLine (x), cadena
End If
Next x
End If
End If
'se repite el bucle para el próximo objeto del proyecto
Next ele
End With
'MsgBox "Fin del proceso de cambio."
ActiveWorkbook.Close SaveChanges:=True
Salto:
arch = Dir
Loop
End Sub