如何使用VBA MS Excel将文本文件的数据附加到另一个文本文件

我有一个Excelmacros查找工作表中的特定string,然后写入到一个txt文件,如果这个strning被发现。

我的问题是, txt文件的值被overwriten,但我想追加到这个文件。

我如何解决这个问题?

我的代码是:

Option Explicit Sub MACRO() Dim ruta As String Dim fi As Long Dim pos As Integer Dim Sht As Worksheet Dim cell As Object fi = FreeFile ruta = "C:\Users\PE0223\Desktop\Ficheros_Con_Links.txt" Set Sht = ThisWorkbook.ActiveSheet On Error GoTo Err Open ruta For Output As #fi On Error GoTo 0 'Application.DisplayAlerts = False For Each cell In Sht.UsedRange.Cells pos = InStr(cell.Formula, "C:\") If pos <> 0 Then Print #fi, ActiveWorkbook.Path & "\" & ThisWorkbook.Name Exit For End If Next Close #fi Exit Sub Err: Close #fi End Sub 

谢谢!

尝试改变行Open ruta For Output As #fi

 Open ruta For Append As #fi 

这应该将数据追加到文本文件,而不是覆盖它。

您可以使用Find来显着改善整体代码,而不是循环遍历每个单元格。 就像是:

 Sub FastDFind() Dim rng1 As Range Dim ruta As String Dim fi As Long fi = FreeFile ruta = "C:\Users\PE0223\Desktop\Ficheros_Con_Links.txt" Open ruta For Append As #fi Set rng1 = Cells.Find("C:\", , xlFormulas, xlPart) If Not rng1 Is Nothing Then MsgBox "value found", vbInformation Print #fi, ActiveWorkbook.Path & "\" & ThisWorkbook.Name Close #fi End If End Sub