2010-07-22 8 views
3

Dans VBA, la propriété ListIndex d'une zone de liste déroulante affiche l'index (commençant à 0) de l'élément sélectionné dans la liste globale (tableau) des valeurs de la zone de liste déroulante. Il montre -1 s'il n'y a pas de sélection faite. Quand j'apporte une feuille dans Excel avec un Combobox et la dernière valeur dedans, il se présente avec un ListIndex de -1, au lieu du ListIndex réel de l'article.ListIndex de la valeur actuelle de la zone de liste déroulante sans sélection

Quelle est l'astuce dans VBA pour obtenir rapidement le ListIndex de la valeur non sélectionnée en cours?

Je sais que je pourrais vérifier manuellement le tableau moi-même (la propriété .List), mais j'espère que VBA a un moyen plus rapide de le faire.

+0

Remplissez-vous le 'ComboBox' par la méthode' Add' sur 'Workbook_Open', en définissant 'ListFillRange' ou une autre méthode? – marg

Répondre

1

De VBA Aide sur la ListIndex Propriété:

La propriété ListIndex contient un index de la ligne sélectionnée dans une liste . Les valeurs de ListIndex vont de -1 à un de moins que le total de nombre de lignes dans une liste (c'est-à-dire ListCount-1). Lorsque aucune ligne n'est sélectionnée, ListIndex renvoie -1. Lorsque l'utilisateur sélectionne une ligne dans un ListBox ou un ComboBox, le système définit la valeur ListIndex.

Donc je suppose que vous ne sélectionnez rien, mais essayez de lire la valeur sélectionnée. Cela pourrait expliquer pourquoi ListIndex renvoie -1.

Questions connexes