2010-04-28 18 views
2

J'ai donc un certain nombre de namedRanges dans une feuille de calcul Excel. Je voudrais les utiliser pour remplir des comboboxes sur un formulaire utilisateur dans le même WorkBook.Utilisez une plage nommée dans une feuille de calcul Excel pour propager une boîte de liste

J'ai essayé:

cboMember.DataSource = Globals.Sheet1.MemberRange.Value 

Aucune erreur est donnée, mais le combo est vide. Est-ce que quelqu'un a des idées? J'essaie d'utiliser VSTO pour VS 2008 sur un cahier d'exercices 2003 Excel.

Répondre

2

cboMember.RowSource = "NamedRange"

vous ne définissez pas à un objet. Réglez-le sur une chaîne. Excel comprend le reste.

2

Ceci est un peu une supposition, mais je crois en VBA que vous pouvez faire quelque chose comme Range("MyRangeName") pour obtenir la plage nommée, de sorte que vous pouvez essayer l'équivalent de cela.

Certaines plages d'Excel sont locales à une feuille, d'autres sont globales au classeur. Si elles sont locales à une feuille, vous devez préfixer le nom de la feuille, par ex. Range("Sheet1!MyRangeName").

+0

Merci Rory Globals.Sheet1.MemberRange.Value renvoie les valeurs correctes dans un tableau, mais je n'arrive pas à me lier à ma liste déroulante. Je pense que je devrais faire une boucle à travers ce tableau pour assigner les valeurs à la combobox individuellement, quelque chose comme cboMember.additem Globals.Sheet1.MemberRange.Value [i] Mais je pensais qu'il devrait y avoir un moyen plus facile. – Dowlers

+0

Je pense que vous avez raison de dire qu'il y a un moyen plus simple. Que diriez-vous de lier une combobox manuellement puis de voir à quoi cela ressemble quand vous l'inspectez avec VBA/débogueur? – Rory