2013-08-22 13 views
6

Ho due elenchi a discesa - uno è dipendente dall'altro - ovvero se seleziono un particolare valore dall'elenco in A1, viene visualizzato un elenco specifico in A2. Questo funziona bene. Tuttavia, quando cambio il valore in A1, A2 rimane nella cella fino a quando clicco sulla lista - quindi il mio valore in A2 cambierà in base alla mia selezione.Excel e modifica del valore tra due elenchi a discesa

Ad esempio, se l'elenco 1 è ['Sì', 'No'] e l'elenco è Sì: [1,2,3] No: [4,5,6]. Per prima cosa seleziono "Sì" per A1 e quindi seleziona 2 per A2. Quindi, se seleziono "No" per A1, "2" rimane in A2 finché non faccio effettivamente clic su A2 per selezionare un nuovo valore (4,5,6). C'è un modo per "cancellare" A2 dopo aver modificato la selezione A1?

Grazie!

risposta

3

inserire questo codice nella pagina di codice per la Worksheet:

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = Range("A1").Address Then 
     Range("A2").ClearContents 
    End If 
End Sub 
+0

Ottima soluzione - molto facile! – mcfly

0

È possibile inserire il codice per aggiornare l'elenco A2 nella procedura di foglio di lavoro per il foglio di lavoro. Ogni volta che un valore di cella viene modificato in quel foglio di lavoro, verrà eseguito il codice di aggiornamento.

+0

Questo suona bene. Attualmente non utilizzo alcun VBA: potresti fornire un esempio? Grazie! – mcfly

+0

Sembra che mcfly abbia un'ottima soluzione [sopra] (http://stackoverflow.com/a/18384534/2658159). –

4

mettere questo nel codice VBA per il foglio di lavoro:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
    If Target.Address = Range("A1").Address Then 
     Dim dependentCell As Range 
     Set dependentCell = Target.Offset(1, 0)  'Cell A2 
     If dependentCell.Validation.Value = False Then dependentCell.Clear 
    End If   
End Sub 
Problemi correlati