2014-04-07 70 views
1

我有一個Excel宏,它在工作表中查找特定的字符串,然後在發現此strning時將文件寫入txt文件。如何將文本文件的數據附加到使用VBA MS的另一個文本文件excel

我的問題是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 

謝謝!

回答

1

嘗試改變線Open ruta For Output As #fi

Open ruta For Append As #fi 

這應該將數據追加到文本文件,而不是覆蓋它。

+0

+1用於解決追加問題。 – brettdj

0

通過使用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 
相關問題