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
fuente
Range("A1").Formula
, guárdelo como una variable global y vuelva a aplicarlo / usarlo más tarde.Respuestas:
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:
y tener la macro actualización C1 .
fuente