Edición de txt desde macro excel 2010

No tengo mucho conocimiento en programación y necesito editar un archivo de texto desde una macro de excel 2010. El problema consiste en que debo buscar la frase "*$LAYER Weather - Data Files #" en un archivo .trd (se comporta igual que un txt); después de buscar la frase debe escribir "CONSTANTS 1" en la línea siguiente. Estoy utilizando el código que dejo al final de la descripción, pero con ese código me escribe "CONSTANTS 1" al final del archivo y no seguido de la frase que necesito.

Código

Sub Prueba()
Dim Linea As String, Nvariables As String
Open "D:\Documentos\Programa de prueba 2\Trnsys\Begin1234.trd" For Input As #1
Do While Not EOF(1)
Line Input #1, Linea
If InStr(1, Linea, "*$LAYER Weather - Data Files #") Then Nvariables = Linea
Loop
Close #1
Open "D:\Documentos\Programa de prueba 2\Trnsys\Begin1234.trd" For Append As #1
Print #1, Linea, crlf & "CONSTANTS 1"
Close #1
End Sub

1 Respuesta

Respuesta
1

Después de mucho indagar, encontré el código que permite buscar líneas en un .txt desde una macro e insertar texto inmediatamente debajo. Dejo este código para la ayuda de todos.

Sub Prueba3()
Dim archivo As String
archivo = "D:\Documentos\JORGE\Programa de prueba 2\Trnsys\Begin1234.trd"
Workbooks.OpenText Filename:=archivo, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=False, _
Other:=False, FieldInfo:=Array(1, 2), TrailingMinusNumbers:=True
With Cells.Find("*$layer weather - data files #")
.Offset(2).EntireRow.Insert
.Offset(2).Value = "CONSTANTS 1"
End With
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs archivo, FileFormat:=xlTextPrinter
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas