Excel 2010 VBA. el cuadro de entrada está eliminando la fórmula en la celda que cambia

0

Ok, soy bastante nuevo en VBA. De hecho, soy un tipo de datos y no lo uso mucho, así que perdóname por mi falta de conocimiento.

Tengo una celda en una hoja que deriva su valor de otra celda. En otras palabras, la celda b1 = a1. Estoy usando un cuadro de entrada para cambiar el valor de b1 porque esto a veces es necesario. No quiero cambiar la celda a1, y quiero mantener la fórmula en b1 para que la celda b1 normalmente obtenga un valor de a1.

Aquí está mi código:

Private Sub CommandButton_click ()
Dim myValue As Variant
myValue = InputBox ("change cell b1")
Range ("b1"). Value = myValue
End Sub

Esto funciona para cambiar el valor pero elimina la fórmula. Estoy usando un botón activeX para iniciar el cuadro de entrada. ¿Puede este botón anular la fórmula para fines del usuario pero aún así mantener la fórmula para futuros cálculos? El 95% del tiempo necesito que b1 obtenga el valor de a1, pero cuando lo anulo, necesito que la fórmula no se elimine para que pueda ser utilizada por el siguiente usuario.

Gracias

AJunker
fuente
1
No estoy seguro de si esto es un problema de VBa o no ... Una celda no puede ser tanto un valor como una fórmula. Dependiendo de sus necesidades, podría simplemente tomar la fórmula. Algo así como Range("A1").Formula, guárdelo como una variable global y vuelva a aplicarlo / usarlo más tarde.
Dave
Gracias. En el contexto de mi código, ¿cómo usaría esto?
AJunker

Respuestas:

1

La forma habitual de implementar esto es con una tercera celda .

Digamos que usamos C1 como la anulación:

Si C1 está vacío, utilice el valor en A1 .
Si C1 no está vacío, úselo.

Entonces en B1 ingrese:

=IF(C1="",A1,C1)

y tener la macro actualización C1 .

Estudiante de gary
fuente