Domanda

Come faccio ad aggiungere un pulsante combinazione / discesa in carica (vedi sotto). Preferibilmente con il codice.

alt text

Aggiornamento:. Se aiuta qualsiasi, non è necessario il codice

È stato utile?

Soluzione

si può fare, in base ai seguenti controlli ActiveX:

  • Microsoft ImageList controllo, versione 6
  • Microsoft ImageComboBox controllo, versione 6

Manualmente, si seleziona "Altri controlli ..." dal [Strumenti di controllo] barra dei menu e fare doppio clic dei controlli di cui per farli sul foglio. Posizionare la casella combinata in cui si desidera che sia, e ignorare la posizione del ImageList, è visibile solo in modalità di progettazione. Ormai avete due Contros incorporati denominato

  • ImageList1
  • ImageCombo1

L'inserimento delle due componenti crea anche un riferimento a ... \ system32 \ MSCOMCTL32.OCX.

Poi

  1. aggiungere manualmente icone (GIF, BMP, ecc) per la lista Immagine
  2. impostare manualmente proprietà ImageList del Combo a "ImageList1"
  3. impostare manualmente proprietà del caricamento automatico del Combo True

A questo punto si dispone di un Combo con l'errore, ma non le icone.

Poi si esegue questo codice

Sub FillCombo()
Dim SH As Worksheet, OO As OLEObjects, Idx As Integer

    Set SH = ActiveSheet
    Set OO = SH.OLEObjects


    With OO("ImageCombo1").Object
        .ComboItems.Clear
        For Idx = 1 To OO("ImageList1").Object.ListImages.Count
            .ComboItems.Add , , , Idx
        Next Idx
    End With

End Sub

Ho cercato di creare gli oggetti di VBA, ma l'ImageCombo sembra comportarsi diverso quando creata come

Set SH = ActiveSheet
Set OO = SH.OLEObjects
OO.Add "MSComctlLib.ImageComboCtl.2"
' .... etc ....

Viene creato il combo, ma il menù a tendina non viene visualizzato, non importa quello che faccio, allthough spettacoli debugger che tutti gli elementi ListView sono ben collegati. Un sacco di colleghi sembrano avere problemi con quella ActiveX, c'è un sacco di invio in rete.

qui

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