只有当单元格不是公式时才执行replace?

我想在一个有很多excel文件的文件夹中进行批量replace。 有些文件在子文件夹中。 但是,如果我要replace的单元格不是公式,我只想replace它。 我想我可以通过检查是否有一个“=”作为单元格的第一个字符,但我不知道如何编写它。 到目前为止,我有这样的:

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 

它按原样工作,但它将取代公式,女巫我不想要的。

仅限于replace为常量:

 ws.Cells.SpecialCells(xlCellTypeConstants).Replace What:="testA", Replacement:="testB", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False 

编辑#1:

为了避免这个恼人的错误,

 On Error Resume Next 

Replace之前,把:

 On Error Goto 0 

Replace