Excel – come avere un input diretto o un valore della cella dalla formula

Vorrei o popolare un valore di cella dall'ingresso diretto di chiave o avere il valore della cella derivato da una formula.

Esempio: immettere direttamente un numero nella cella A4 o avere il valore per A4 = A2 + A3

Non voglio che la formula sovrascritta dovrebbe utilizzare l'input chiave diretto.

Thx, spero che questo chiarisca.

Appena un valore viene immesso in una cella, qualsiasi formula in quella cella verrà sovrascritta. È comunque ansible utilizzare una routine VBA per ripristinare la formula. Le tue esigenze dovrebbero includere la logica di ciò che ha la precendenza, vale a dire in quale caso dovrebbe essere usata una formula e in quale caso il numero immesso manualmente "vince".

Il seguente codice funziona in questi locali:

  • le cellule A2 o A3 vengono modificate
  • Sia A2 che A3 devono avere valori

Quindi, quando vengono modificati A2 o A3 e entrambe le celle contengono un valore, la macro scriverà A2 in A3 nella cella A4. Se uno dei valori in A2 o A3 è text, la macro verrà eseguita e Excel visualizzerà il messaggio di errore per l'aggiunta di text con i numbers. Utilizzare Sum () per evitare il messaggio di errore.

Se la cella A4 viene quindi modificata e la formula viene sovrascritta, questo valore verrà visualizzato finché non vengono nuovamente modificati A2 o A3.

Se ciò non corrisponde alle tue esigenze, ti preghiamo di precisare in dettaglio.

Il codice entra nel module Foglio (fare clic con il button destro del mouse sulla scheda fogli, fare clic su "Visualizza codice", incollare il codice nell'area del codice grande).

 Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Not Intersect(Target, Range("A2:A3")) Is Nothing Then If WorksheetFunction.Count(Range("A2:A3")) = 2 Then Range("A4").Formula = "=A2+A3" End If End If End Sub 

VBA può farlo, deve trovarsi nel foglio di lavoro VBA e potrebbe essere necessario una modifica

 Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Count = 1 Then If .Column = 4 And .Row = 1 Then If IsEmpty(.Value) And .Offset(-1) <> "" AND .Offset(-2) <> "" Then Application.EnableEvents = False .FormulaR1C1 = "=A2+A3" Application.EnableEvents = True End If End If End If End With End Sub