2013-06-16 9 views
0

Je suis bloqué par un problème. J'ai une gamme de cellules qui contiennent les chemins vers des carnets de travail externes, qui contiennent tous une même plage nommée. E.g. dans un classeur de la cellule B2, j'ai une chaîne de texte qui lit 'C: \ test \ test.xlsm'. Dans ce fichier spécifique, j'aurais une plage nommée nommée 'namedrange'. Maintenant, je voudrais faire référence à ce namedrange en utilisant une fonction à créer dans VBA. Je veux utiliser la fonction 'INDEX' pour faire référence à des classeurs externes fermés. Cependant, INDEX ne me permettra pas de me référer aux cellules pour créer cette référence. Je devrais utiliser INDIRECT: cependant, INDIRECT ne me permettra pas d'utiliser INDEX avec des classeurs fermés. Alors, comment pourrais-je aborder cela? J'ai essayé de créer une fonction appelée 'référence' qui relierait à la cellule B2, puis j'utiliserai par exemple. INDEX (Référence (B2), 1,1) pour se référer au classeur externe 'namedrange row 1 column 1. Mais cela ne marche pas. Est-ce que quelqu'un a une idée? De même, je voudrais utiliser la fonction MATCH avec ces références. Très appréciée!Utilisation de la référence de cellule VBA pour créer une référence externe aux classeurs fermés

Function Reference(stradd As String) As Range 
    Reference = Workbooks(stradd).Range("namedrange") 
End Function 

Répondre

0

Vous pouvez certainement utiliser l'index/fonctions de match référence à des classeurs fermés, par exemple:

Utilisez l'index/match pour trouver "steve" dans la colonne A d'un classeur fermé nommé "Test.xlsx" et retourner la valeur dans la ligne correspondante, la colonne B:

=INDEX('C:\Users\david_zemens\Desktop\[test.xlsx]Sheet1'!$A$1:$B$1,MATCH("steve",'C:\Users\david_zemens\Desktop\[test.xlsx]Sheet1'!$A:$A,FALSE),2)

de toute évidence, vous pouvez changer le * valeur_cherchée * de « Steve » à quoi que ce soit, y compris une référence de cellule.

Questions connexes