2012-07-11 17 views
7

このVBAマクロに問題があります。式を変更することなく、VBAのセルの値(表示テキスト)を変更する方法は?

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

私のテストはhereです。このマクロを実行するには、Excelで開き、Ctrl+F8を押してdemoChangeTextを選択します。

結果として、このマクロはセルB2(テキストが表示されます)の値を変更しますが、その式はクリアします。私はB2の値を変更する必要がありますが、残る数式も必要です。

私の質問はです。式の変更をせずにセルの表示テキストを変更するにはどうすればよいですか?

UPDATE

私はthis problem

+1

ドン」とVBAを印加することができるOverridden text

として任意文字列値を表示しますそれは意味をなさないと思う。式がディスプレイを定義するものです。表示を変更する場合は、数式を変更します。値を "Overridden Text"に変更すると、基本的に式を "Output this text .."という些細なものに変更します。 –

+0

@Davuz ChrisNeilsenはあなたの質問に完全に答えます。私はまた彼の答えに解決ファイルを添付しました –

答えて

11

を解決しようとしているので、私は何をあなたの基本的な要件を伝えるために少し難しいですように私は、これが役立つかどうかわからないんだけど、この質問をしますですが、ここでは、とにかく行く:

    0:

    いくつかのものは、細胞の表示に影響を与えます

  1. 入力された値、計算の結果
  2. その一定であれば、細胞のその式
  3. 細胞
  4. のフォーマット条件形式(S)であれば、任意
場合たとえばシートで

あなたはあなたがこの表示何かeを行うことができます22

の文字列の結果を返します=ROW()&COLUMN()の式を有する提供
は、例えば、セルの書式を適用することにより、LSE 0;0;0;Ov\e\r\ri\d\d\e\n t\extの形式はこれにより

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""" 
+1

+1素晴らしい説明:)はいこれは表示テキストを変更する方法の1つです。 –

+5

+1各文字の書式をエスケープするのではなく、引用符で囲むこともできます。 '" 0; 0; 0; ""オーバーライドされたテキスト "" "' –

+0

@ChrisNeilsen Awesome!これは、あなたの答えで更新されたテストファイルです。https://dl.dropbox.com/u/6194904/2012/TestChangeText.xlsm –

関連する問題