2012-07-11 14 views
7

Tengo un problema con esta macro de VBA.¿Cómo cambia VBA el valor de la celda (texto en pantalla) sin cambiar su fórmula?

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

Mi prueba es here. Para ejecutar esta macro, ábrala en Excel, presione Ctrl+F8 y elija demoChangeText.

Como resultado, esta macro cambia el valor de la celda B2 (el texto que se nos muestra) pero borra su fórmula. Necesito cambiar el valor de B2 PERO también necesito que se mantenga la fórmula.

Así que mi pregunta es ¿Cómo cambiar el texto de visualización de la celda sin cambiar su fórmula?

ACTUALIZACIÓN

hago esta pregunta porque estoy tratando de resolver this problem

+1

Don' Creo que eso tiene sentido. La fórmula es lo que define la pantalla. Si desea cambiar la pantalla, cambie la fórmula. Si cambia el valor a "Anular texto" básicamente cambiará la fórmula a una trivial que diga "Emitir este texto ..." –

+0

@Davuz ChrisNeilsen responde perfectamente su pregunta. También adjunté el archivo de solución en su respuesta a continuación –

Respuesta

11

No estoy seguro de si esto ayuda, ya que es un poco difícil saber cuál es su requerimiento subyacente es, pero aquí va de todos modos:

Hay varias cosas que afectan a la pantalla de una célula:

  1. el valor introducido, si es una constante
  2. el resultado de un cálculo, si es una fórmula
  3. el formato de la célula
  4. el formato condicional (s) de la célula, si cualquier

En la hoja de ejemplo, siempre que disponga de una fórmula de =ROW()&COLUMN() que devuelve una cadena resultado de 22

usted puede hacer esta pantalla algo electrónico LSE mediante la aplicación de un formato de celda,
por ejemplo, un formato de 0;0;0;Ov\e\r\ri\d\d\e\n t\ext mostrará cualquier valor de cadena como Overridden text

Este puede ser aplicado 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 Agradable explicación :) Sí, esta es una forma de cambiar el texto de la pantalla. –

+5

+1 También puede adjuntar comillas en lugar de escapar del formato de cada letra. '" 0; 0; 0; "" Texto reemplazado "" "' –

+0

@ChrisNeilsen ¡Impresionante! Este es el archivo de prueba actualizado con su respuesta https://dl.dropbox.com/u/6194904/2012/TestChangeText.xlsm –

Cuestiones relacionadas