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

我有这个VBAmacros的问题。

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

我的testing在这里 。 要运行这个macros,在Excel中打开它,按下Ctrl+F8并selectdemoChangeText

结果,这个macros改变了单元格B2 (显示给我们的文本)的值,但清除了它的公式。 我需要改变B2的价值,但也需要保留的公式。

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

UPDATE

我问这个问题,因为我试图解决这个问题

我不确定这是否会有所帮助,因为要了解您的基本要求有些困难,但无论如何,

几件事情影响一个单元格的显示

  1. input的值,如果它是一个常数
  2. 一个计算的结果,如果它的一个公式
  3. 单元格的格式
  4. 单元格的条件格式(如果有的话)

在提供的示例表中,您有一个公式=ROW()&COLUMN() ,它返回string结果22

你可以通过应用单元格格式来使这个显示变成别的东西,
例如格式为0;0;0;Ov\e\r\ri\d\d\e\nt\ext将显示任何string值作为Overridden text

这可以通过与VBA一起使用

 Range("B2").NumberFormat = "0;0;0;Ov\e\r\ri\d\d\e\nt\ext\s" 

要么

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