Domanda

Sono in grado di trovare queste informazioni: E 'possibile visualizzare le etichette in questi due tipi di liste, piuttosto che i valori reali? naturalmente quando si seleziona un'etichetta, il valore della cella o del combobox (come controllo Form) ottiene il valore reale.

Esempio: * I dati Prodotto A <------> 10 Prodotto B <------> 11 Prodotto C <------> 22

spettacoli ComboBox: Prodotto A, B del prodotto e del prodotto C Se seleziono A ottengo il valore di 10, B, il valore 11 e C 22 Valore

Grazie in anticipo

Miloud B.

È stato utile?

Soluzione

Il modo tipico di fare questo è quello di avere una tabella di ricerca. C'è una funzione denominata qualcosa come VLOOKUP (che è un nome parziale) che è possibile utilizzare nelle formule per recuperare il valore. Ho fatto qualcosa di simile al mio lavoro, e ho creato una tabella di ricerca in un foglio di calcolo separato, e quindi chiamata la funzione di ricerca nel mio principale.

È inoltre possibile utilizzare le macro, ma che è troppo fastidio a mio parere per l'attuale problema.

Altri suggerimenti

Data Validation : Non è possibile avere due valori per riga. È possibile utilizzare una tabella di ricerca per convertire un valore all'altro. Oppure è possibile combinare i valori come "ProductA_10" e utilizzare una formula per estrarre il "10" dove ne avete bisogno.

Modulo Combobox :. Anche questo ha limitato le opzioni e non davvero offrire qualcosa di più di DV fa per quello che vuoi

Toolbox Combobox : Questo può fare praticamente tutto quello che vuoi. Si potrebbe impostare la proprietà ColumnCount a 2, la proprietà BoundColumn a 2, e la proprietà ColumnWidths a qualcosa come "1; 0" per nascondere la seconda colonna. Se avessi ProductA-C in A1: A3 e 10-12 in B1: B3, quindi vorrei usare il codice come questo in un modulo standard per riempire la casella combinata

Sub LoadCombobox()

    Dim rCell As Range

    For Each rCell In Sheet1.Range("A1:A3").Cells
        Sheet1.ComboBox1.AddItem rCell.Value
        Sheet1.ComboBox1.List(Sheet1.ComboBox1.ListCount - 1, 1) = rCell.Offset(0, 1).Value
    Next rCell

End Sub

E il codice come questo nel modulo del foglio per mettere un valore in una cella (F1 in questo esempio)

Private Sub ComboBox1_Change()

    Me.Range("F1").Value = Me.ComboBox1.Value

End Sub

Ogni volta che viene selezionato un nuovo valore nella casella combinata, F1 viene aggiornato. Siamo in grado di utilizzare la proprietà Value della casella combinata perché abbiamo impostato la proprietà BoundColumn alla colonna con il valore che vogliamo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top