2010-11-16 18 views
0

J'ai un sous-VBA Excel qui (entre autres choses) colle une formule de recherche dans certaines cellules. La formule de recherche est actuellement de la formeExcel VBA: trouver la taille de la table de correspondance étrangère

LOOKUP(RC5,lookup.xlsx!Item,lookup.xlsx!R2C:R559C) 

mais la taille de la table de recherche va changer. Y at-il un bon moyen de trouver la taille de la table de recherche, c'est la dernière rangée?

Dans une pincée, je suppose que je pourrais ouvrir le fichier de recherche (ce qui est la commande pour cela?) Et faire

Windows("lookup.xlsx").Activate 
last = Range("a65536").End(xlUp).Row  
Windows("whatever.xlsx").Activate 

mais je ne sais pas s'il y a une meilleure façon.

Répondre

1

La dernière cellule utilisée a une mauvaise réputation dans Excel AFAIK. Voir par exemple this, bien qu'un peu démodé. Si vous le pouvez, assurez-vous d'insérer une valeur EOF dans la dernière ligne utilisée et recherchez-la.

Modifier

Rappel:

  • Une valeur nulle (ou espaces) peuvent servir ainsi que d'un indicateur de fin de fichier. Assurez-vous d'être cohérent.
  • Vous pouvez toujours inclure des colonnes entières dans la plage de recherche et Excel s'occupera de la fin (s'il n'y a plus de cellules utilisées sous votre portée.) In = RECHERCHE (A1, C: C, D: D)
+0

Donc, est la meilleure façon d'avoir Excel ouvrir le fichier, alors? – Charles

+0

Aucune chance d'une étiquette EOF, au fait, d'autres auront le fichier en question et je ne peux qu'espérer que la feuille reste sensible – Charles

+0

@Charles Voir edit –