macros查找和replace文本文件中的文本(循环为不同的文件)

新的VBA,但试图为以下的macros:

  • 我想让macros打开一个文本文件(位于单元格A2中的单元格B2中的文件名),find文本(在单元格C2中提供),用单元格D2中提供的新文本replace文本,然后保存并closures文本文件。
  • 然后,它应该打开一个文本文件(B3单元格中的文件名称位于单元格A3中提供的位置),以find文本(在单元格C3中提供),用单元格D3中提供的新文本replace该文本,然后保存并closures文本文件。
  • 重复直到电子表格中提供的所有文件都已更新。

感谢您的帮助!

电子表格示例: 电子表格

请注意,我希望能够find并replace不必与原始文本具有相同字符数的文本。

尝试到目前为止如下。 当运行debugging时, strText在盘旋时是正确的,然后当它通过Get #i, , strText步骤时,它会变成我试图更新的文本文件的标题。

 Sub Replace_Text() Dim src As String, fl As String Dim strFile As String Dim i As Integer Dim x As Integer Dim strText As String Dim lngMyRow As Long Dim lngLastRow As Long i = FreeFile Application.ScreenUpdating = False lngLastRow = Range("A:B").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 For lngLastRow = 2 To lngLastRow x = 2 'Source directory src = Range("A" & x) 'File name strFile = Range("B" & x) With CreateObject("vbscript.regexp") .Global = True Open src & "\" & strFile For Binary Access Read Write As #i strText = Space(LOF(i)) Get #i, , strText For Each cell In Range("C1:C" & Cells(Rows.Count, "C").End(xlUp).Row) .Pattern = Replace(Replace(Replace(Replace(cell.Value, "?", "\?"), "*", "\*"), "+", "\+"), ".", "\.") strText = .Replace(strText, cell.Offset(, 1).Value) Next cell Put #i, , strText Close #i End With i = i + 1 Next lngLastRow MsgBox "done" Application.ScreenUpdating = True End Sub