2012-07-11 27 views
7

Ho un problema con questa macro VBA.Come modificare il valore della cella VBA (testo visualizzato) senza modificarne la formula?

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

Il mio test è here. Per eseguire questa macro, aprila in Excel, premi Ctrl+F8 e scegli demoChangeText.

Come risultato, questa macro modifica il valore della cella B2 (il testo visualizzato) ma deseleziona la sua formula. Devo cambiare il valore di B2, ma ho anche bisogno che la formula resti.

Quindi la mia domanda è Come modificare il testo di visualizzazione della cella senza modificarne la formula?

UPDATE

pongo questa domanda perché sto cercando di risolvere this problem

+1

don' Penso che abbia senso. La formula è ciò che definisce la visualizzazione. Se si desidera modificare il display, quindi modificare la formula. Se cambi il valore in "Testo sovrascritto", in pratica cambi la formula in una banale che dice "Emetti questo testo .." –

+0

@Davuz ChrisNeilsen risponde perfettamente alla tua domanda. Ho allegato anche il file della soluzione nella sua risposta sotto –

risposta

11

Non sono sicuro se questo aiuterà, in quanto è un po 'difficile dire che cosa il vostro requisito di fondo è, ma qui va comunque:

Molte cose influiscono sulla visualizzazione di una cella:

  1. il valore immesso, se una costante
  2. il risultato di un calcolo, se una formula
  3. il formato della cella
  4. il formato condizionale (s) della cella, se qualsiasi

Nel foglio esempio, a patto di avere una formula di =ROW()&COLUMN() che restituisce un risultato stringa di 22

si può fare questo visualizzazione qualcosa e LSE applicando un formato di cella,
esempio un formato di 0;0;0;Ov\e\r\ri\d\d\e\n t\ext visualizzerà qualsiasi valore stringa come Overridden text

Questo può venire applicato con VBA con

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

o

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

+ 1 Nice Spiegazione :) Sì, questo è un modo per cambiare il testo visualizzato. –

+5

+1 È anche possibile racchiudere tra virgolette anziché sfuggire al formato di ciascuna lettera. '" 0; 0; 0; "" Testi sovrascritti "" "' –

+0

@ChrisNeilsen Impressionante! Questo è il file di test aggiornato con la tua risposta https://dl.dropbox.com/u/6194904/2012/TestChangeText.xlsm –

Problemi correlati