【问题标题】:Replace "^=^" with "=" where result remains text将“^=^”替换为“=”,其中结果仍为文本
【发布时间】:2019-01-20 07:54:12
【问题描述】:

我继承了这张表,其中这块突然不起作用。它不会抛出任何错误,只是没有任何反应

CreatorWB.Sheets(TabNames(i, 1)).Cells.Replace What:="^=^", _ 
  Replacement:="=", LookAt:= _
  xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
  ReplaceFormat:=False

一旦“^=^”变为“=”,文本就会变为公式。

如果我在 VBA 之外进行搜索和替换(使用 ctrl + H),Excel 会认为我无意中将文本更改为公式。

我的一般直觉是,如果在界面中不可能,那么在代码中也不可能。让我感到惊讶的是,这以前有效。

【问题讨论】:

  • 会发生什么?您不想在执行Replace 时将文本更改为公式吗?在 XL2010 中手动将文本更改为公式对我来说也是如此。
  • TabNames 数组有什么变化吗?是否有可能没有正确存储工作表名称?从外观上看,这似乎是在一个循环内,如果工作表名称发生更改或代码的其他部分发生更改,则可能无法正确提取工作表名称。
  • 工作表名称是正确的,只是在执行该行时它什么都不做。我希望它在删除“^”后立即作为公式工作。

标签: excel vba replace


【解决方案1】:

我认为它停止了对我的工作,因为 excel 认为我无意中试图将文本变成公式。我解决了它解析单元格并制作

cells(i,j).formula = "=" & right(Formula_string), len(formula_string,3))

这不是最佳解决方案,但它现在解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    相关资源
    最近更新 更多