【问题标题】:VBA Replace error - string treated as formulaVBA 替换错误 - 字符串被视为公式
【发布时间】:2012-08-17 10:22:53
【问题描述】:

我正在尝试通过将所有实例“
”替换为单个空格 (“”) 来清理包含在一个非常大的 Excel 电子表格中的一些文本。我尝试了两种方法:在 Excel 中使用普通的 Find/Replace All 选项,以及使用这个非常简单的 VBA 宏:

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

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

当然,我不是要输入公式。但是,按照 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 宏轻松地查找和替换此电子表格中的其他字符串。
  • 我还有其他类似的电子表格,可以在其中查找和替换“
    ”。
  • 在我朋友的计算机上,可以使用这两种方法查找和替换“
    ”的所有实例。

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

【问题讨论】:

  • 如果您尝试在单个列(而不是所有单元格)上执行此操作,它是否有效?
  • 我认为您需要隔离有问题的字符串 - 大概在某个阶段 Excel 正在尝试更新失败的公式。我会删除一半的数据,运行测试,然后如果错误再次发生,继续删除和测试,或者如果错误没有发生,恢复你删除的一半,然后继续减半并测试
  • 感谢您的建议!它确实适用于单个列。但是电子表格中根本没有公式,所以我认为问题与更新失败的公式无关......
  • 您可以将您的工作簿发布到网上供我们测试吗?
  • 如果将所有单元格格式化为文本然后执行替换呢?

标签: excel vba replace


【解决方案1】:

你试过了吗:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多