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 ** –
现在完美。谢谢! –