查找并replace文件夹中所有excel文件中的string

我需要帮助创build查找和replacestringmacros,以便它可以find并replace文件夹中的所有文件中的string。

例如fofler = "C:\ifolder\" ifolder "C:\ifolder\" files list = "*.xlsx"

到目前为止,我只能做一个文件,我需要做一个文件夹中的所有文件

 Sub ReplaceStringInFile() Dim sBuf As String Dim sTemp As String Dim iFileNum As Integer Dim sFileName As String ' Edit as needed sFileName = "C:\macro\test.txt" iFileNum = FreeFile Open sFileName For Input As iFileNum Do Until EOF(iFileNum) Line Input #iFileNum, sBuf sTemp = sTemp & sBuf & vbCrLf Loop Close iFileNum sTemp = Replace(sTemp, "THIS", "THAT") iFileNum = FreeFile Open sFileName For Output As iFileNum Print #iFileNum, sTemp Close iFileNum End Sub 

由于您实际上有打开文本文件的代码,而不是Excel文件,所以我采用了相同的方法

像这样的地方在哪里

  1. Dir用于遍历特定文件夹中的所有txt文件。
  2. 使用FileScriptingObject一次读入所有文本,进行replace,然后用更新的文本覆盖文件文件。

 Sub ReplaceStringInFile() Dim objFSO As Object Dim objFil As Object Dim objFil2 As Object Dim StrFileName As String Dim StrFolder As String Dim SstrAll As String Set objFSO = CreateObject("scripting.filesystemobject") StrFolder = "c:\macro\" StrFileName = Dir(StrFolder & "*.txt") Do While StrFileName <> vbNullString Set objFil = objFSO.opentextfile(StrFolder & StrFileName) strAll = objFil.readall objFil.Close Set objFil2 = objFSO.createtextfile(StrFolder & StrFileName) objFil2.Write Replace(strAll, "THIS", "THAT") objFil2.Close StrFileName = Dir Loop End Sub