web-dev-qa-db-fra.com

Reportez-vous à la cellule Excel dans le tableau par nom d'en-tête et numéro de ligne.

J'essaie de faire référence à une cellule d'un tableau Excel en utilisant le nom de l'en-tête du tableau et le numéro de ligne à l'aide de VBA. 

Est-ce que c'est possible?

enter image description here

13

Dans votre exemple, quelque chose comme ceci:

Dim tb As ListObject
'assumes Table is the first one on the ActiveSheet
Set tb = ActiveSheet.ListObjects(1)
MsgBox tb.DataBodyRange.Cells(2, tb.ListColumns("header4").Index)
29
brettdj

Une réponse plus courte est:

MsgBox [MyTable].Cells(2, [MyTable[MyColumn]].Column)

Beaucoup plus propre et plus facile!

11
Salam Morcos

Il me semble que la solution @Salam Morcos ne donnera pas une réponse appropriée. Si la table commence à partir de la cellule A2, l'état [MyTable[FirstColumnName]].Column donnerait la valeur 2. La solution appropriée serait:

MsgBox [MyTable].Cells(2, [MyTable].Column-[MyTable[MyColumn]].Column + 1)
2
TomJohnRiddle