如何在不改变公式的情况下改变单元格的值(显示文本)?

时间:2012-07-11 09:23:26

标签: excel vba excel-vba formula

我的VBA宏存在问题。

Sub demoChangeText()
    Application.Range("B2").Value = "Overidden text"
End Sub

我的测试是here。要运行此宏,请在Excel中打开它,按Ctrl+F8并选择demoChangeText

结果,此宏更改单元格B2(显示给我们的文本)的值,但清除其公式。我需要更改B2的值,但也需要保留公式。

所以我的问题是如何更改单元格的显示文本而不更改其公式?

更新

我问这个问题是因为我正在尝试解决this problem

1 个答案:

答案 0 :(得分:12)

我不确定这是否会有所帮助,因为要说明你的基本要求有点难以理解,但无论如何都要这样做:

有些因素会影响单元格的显示

  1. 输入的值,如果是常量
  2. 计算结果,如果是公式
  3. 单元格格式
  4. 单元格的条件格式(如果有)
  5. 在提供的示例表中,您的公式为=ROW()&COLUMN(),返回字符串结果22

    您可以通过应用单元格格式来实现显示其他内容 例如0;0;0;Ov\e\r\ri\d\d\e\n t\ext格式会将任何字符串值显示为Overridden text

    这可以通过VBA与

    一起使用
    Range("B2").NumberFormat = "0;0;0;Ov\e\r\ri\d\d\e\n t\ext\s"
    

    Range("B2").NumberFormat = "0;0;0;""Overridden texts"""