remplir combobox en VBA avec les éléments du tableau

J'ai une procédure VBA (Excel 2007) où j'aspire à définir la propriété ListFillRange d'une zone de liste déroulante de style que d'une liste à l'aide d'un tableau.

Je sais que cela fonctionne si je clic droit sur la zone de liste déroulante et écrire "Feuil1!$F2:$F17" à côté de "ListFillRange de la propriété". Je peux aussi faire cela dans le code. Cependant, je suis intéressé par la définition dynamique de la valeur de cette propriété par l'affectation d'un tableau.

Je sais pour sûr que le tableau fonctionne comme je l'ai testé, il n'y a probablement une erreur de syntaxe ici:

ThisWorkbook.Worksheets("Sheet1").OLEObjects("cmbS").ListFillRange = ar

lorsque je fais ceci, j'obtiens:
"Erreur" incompatibilité de Type.

Le résultat de cette action devrait être que le composant est remplie avec les éléments du tableau, à partir de l'élément(0) ... le dernier élément (n-1) de la matrice. Tous les pointeurs, je vous remercie beaucoup!

J'ai aussi essayé:

ThisWorkbook.Worksheets("Sheet1").cmbS.list = ar

et il dit "permission denied"

Voici la liste déroulante propriétés dans les cas où il permet de:
remplir combobox en VBA avec les éléments du tableau

Après le test et l'essai, j'ai trouvé cela fonctionne:

ThisWorkbook.Worksheets("Sheet1").cmbS.ListFillRange = ""

Dim i As Integer
For i = LBound(ar) To UBound(ar)
    ThisWorkbook.Worksheets("Sheet1").cmbS.AddItem (ar(i))

Next

Cependant, je suis intéressé par le remplissage avec toutes les valeurs à la fois pour un effet plus rapide, pas seulement l'ajout de l'élément par élément.

  • si c'est lent toujours écran de configuration de la mise à jour à faux avant à l'aide de additem.
InformationsquelleAutor Sam | 2013-03-14