0
我想在一個包含大量excel文件的文件夾中進行批量替換。有些文件位於子文件夾中。但是,如果我要替換的單元格不是公式,我只想替換它。我想我可以通過檢查是否有一個「=」作爲單元格的第一個字符,但我不知道如何對它進行編碼。到目前爲止,我有這樣的:如何僅在單元格不是公式時執行替換?
Dim FileSystem As Object
Dim HostFolder As String
Sub Init()
HostFolder = "C:\Users\Felipe\Desktop\ReplaceTest\"
Set FileSystem = CreateObject("Scripting.FileSystemObject")
DoFolder FileSystem.GetFolder(HostFolder)
End Sub
Sub DoFolder(Folder)
Dim SubFolder
For Each SubFolder In Folder.SubFolders
DoFolder SubFolder
Next
Dim File
For Each File In Folder.Files
With Workbooks.Open(File)
Dim worksheet As worksheet
For Each worksheet In ActiveWorkbook.Worksheets
'I don't want the line below to replace formulas
ws.Cells.Replace What:="testA", Replacement:="testB", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
Next worksheet
End With
Next
End Sub
它的工作原理是,但它將取代公式,巫婆,我不想。
我做了一些測試。它工作正常,除非它發現一個完全空的工作表。它給了我一個錯誤,說「沒有找到細胞」,然後停下來。我不明白爲什麼它必須在工作表中至少有一個單元格的值。我該如何解決這個問題? –
@FelipeMüller請參閱我的**編輯#1 ** –
現在完美。謝謝! –