Est-il possible en VBA Excel pour faire référence à un nom de table?
Hypothétiquement ce qui pourrait être...
Sheets("Sheet1").Table("A_Table").Select
J'ai vu une mention de tables étant un objet de la liste, mais je ne suis pas sûr si c'est la même chose...
Peut-être cela peut vous aider à
La création d'une table
La conversion d'une gamme à une table commence avec le même code que dans Excel 2003 (comme décrit dans cette réponse):
L'OP posé, est-il possible de référence à un tableau, pas comment ajouter une table. Ainsi, le travail de l'équivalent de
serait cette déclaration:
ou pour sélectionner les pièces (comme seules les données dans le tableau):
Pour les pièces, vous pouvez tester l'existence de l'en-tête et les totaux des lignes avant de les sélectionner.
Et sérieusement, c'est la seule question sur référencement tableaux en VBA dans? Les tableaux dans Excel trop de sens, mais c'est tellement dur de travailler avec en VBA!
Un "tableau" dans Excel est en effet connu comme un ListObject.
La "bonne" façon de faire référence à une table est en obtenant sa ListObject à partir de sa Feuille de calcul c'est à dire
SheetObject.ListObjects(ListObjectName)
.Si vous voulez faire référence à un tableau sans l'aide de la feuille, vous pouvez utiliser un hack
Application.Range(ListObjectName).ListObject
.REMARQUE: Ce hack repose sur le fait que Excel crée toujours une plage nommée pour la table DataBodyRange avec le même nom que la table. Cependant, ce nom de la gamme de peut être changé...si ce n'est pas quelque chose que vous aimeriez faire depuis le nom sera remise à zéro si vous modifiez le nom de la table! Vous pouvez également obtenir une plage nommée sans associé ListObject.
Donné Excel n'est pas-très-utile 1004 message d'erreur lorsque vous obtenez le nom de mal, vous pouvez créer un wrapper...
Aussi quelques bonnes ListObject info ici.
Application.Names
! Mais ils peuvent certainement être consulté à l'aide deApplication.Range(...)
.ActiveSheet
objet.En outre, il est commode de définir les variables se référant à des objets. Par exemple,
Vous trouverez probablement qu'il est avantageux à la fois.
En plus de ce qui précède, vous pouvez le faire (où "YourListObjectName" est le nom de votre table):
Mais je pense que cela ne fonctionne que si vous voulez faire référence à un objet de la liste qui est sur la feuille active.
J'ai trouvé votre question parce que je voulais pour faire référence à un objet de la liste (un tableau) sur une feuille de calcul d'un tableau croisé dynamique sur une autre feuille de calcul se réfère. Depuis la liste des objets font partie de la collection de Feuilles de calcul, vous devez connaître le nom de la feuille de calcul que l'objet de la liste est dans l'ordre de la consulter. Donc, pour obtenir le nom de la feuille de calcul que l'objet de la liste est sur, j'ai obtenu le nom de la table pivot de la source objet de la liste (encore une fois, d'une table) et boucle à travers les feuilles de travail et de leurs objets de la liste jusqu'à ce que j'ai trouvé la feuille de calcul qui contenait la liste d'objet que je cherchais.
Peut-être quelqu'un sait d'une manière plus directe.