0

問題が発生しました。外部ワークブックへのパスを含むセルの範囲があり、そのすべてに同じ名前の範囲が含まれています。たとえば、セル B2 のワークブックには、「C:\test\test.xlsm」というテキスト文字列があります。その特定のファイルには、「namedrange」という名前の範囲があります。今、VBAで作成する関数を使用して、このnamedrangeを参照したいと思います。「INDEX」関数を使用して、外部の閉じたブックを参照したいと考えています。ただし、INDEX では、セルを参照してその参照を作成することはできません。INDIRECT を使用する必要があります: ただし、INDIRECT では、閉じたワークブックで INDEX を使用することはできません。では、これにどのようにアプローチしますか?セル B2 にリンクする「参照」という関数を作成しようとしました。次に、たとえば INDEX(Reference(B2),1,1) を使用して外部ワークブックを参照します。namedrange 行 1 列 1。しかし、これは機能しません。誰にもアイデアはありますか?同様に、これらの Reference で MATCH 関数を使用したいと思います。とても有難い!

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

1 に答える 1

0

Index/Match 関数を使用して、閉じたワークブックを参照できます。たとえば、次のようになります。

インデックス/一致を使用して、"Test.xlsx" という名前の閉じたワークブックの列 A で "steve" を検索し、対応する行の列 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)

明らかに、"Steve" の *lookup_value* を、セル参照を含む任意のものに変更できます。

于 2013-06-16T13:53:32.537 に答える