VBA替换错误 - 将字符串视为公式

时间:2012-08-22 02:28:12

标签: excel vba replace

我试图通过替换所有实例“< br />”来清理非常大的Excel电子表格中包含的一些文本有一个空格(“”)。我尝试了两种方法:使用Excel中的普通“查找/替换所有”选项,并使用这个非常简单的VBA宏:

Sub CleanUp()
    Application.Cells.Replace What:="<br />", Replacement:=Chr(32), LookAt:=xlPart
End Sub

在这两种情况下,我都会收到一条错误消息,指出:“您键入的公式包含错误。有关修复常见公式问题的信息,请单击”帮助“。要获得输入函数的帮助,请单击”函数向导“( “公式”选项卡,“函数库”组。)如果您不想输入公式,请避免使用等号(=)或减号( - ),或在其前面加上单引号(')。“

当然,我不是想输入一个公式。但是,在“&lt; br /&gt;”之前使用单引号作为Excel建议不能解决问题。

即使我的搜索字符串不包含任何通配符(据我所知),我也试过在我的宏中使用文字字符来查看是否有帮助。它不能解决问题,但无论如何这里是代码:

Sub CleanUp()
  Dim SearchFor As String
  SearchFor = Chr$(60) & "br" & Chr$(32) & Chr$(47) & Chr$(62)
    Application.Cells.Replace What:=SearchFor, Replacement:=Chr$(32), LookAt:=xlPart
End Sub

有用的事实:

  • 我可以使用普通的查找/替换方法和VBA宏轻松查找和替换此电子表格中的其他字符串。
  • 我有其他类似的电子表格,其中查找并替换“&lt; br /&gt;”是可能的。
  • 在我朋友的电脑上,可以找到并替换“&lt; br /&gt;”的所有实例使用这两种方法。

有没有人知道为什么会这样?它与我的Excel设置有关吗?

1 个答案:

答案 0 :(得分:0)

你试过了吗?

Cells.Replace What:="<br/>", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False