【发布时间】: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 正在尝试更新失败的公式。我会删除一半的数据,运行测试,然后如果错误再次发生,继续删除和测试,或者如果错误没有发生,恢复你删除的一半,然后继续减半并测试
-
感谢您的建议!它确实适用于单个列。但是电子表格中根本没有公式,所以我认为问题与更新失败的公式无关......
-
您可以将您的工作簿发布到网上供我们测试吗?
-
如果将所有单元格格式化为文本然后执行替换呢?