|
▼Jaka さん:
>すみません。間違えてました。
>.Formula = "=MATCH(" & """検索したい文字""" & ",'×××\[○○○.xls]TOTAL'!A:A,0)"
ありがとうございます。
この書き方は検索したい文字の決め打ちになってしまうのですが、
セルK1の値は変動してしまうので、この場合はどう表現すればよいのでしょうか?
間違ってると分かってても、つい、
.Formula = "=MATCH(" & """K1""" & ",'" & FOLDERpath & "\[" & nowID & ".xls]TOTAL'!C:C,0)"
で試してみましたが、当然、K1という値はないわけで…藁にもすがる思いです。
>>MATCH関数の返り値としてはFalse
>Falseが返るんですか??
>#N/Aじゃなくて....。
すみません。Falseは私の勘違いで、ちゃんと#N/Aが返ってきます。
申し訳ありません。
>なんか、他が間違っている世にも思えます。
>まず、その関数を直接書き込んでその関数が会っているのか確認された方がいいと思います。
>今のところこのぐらいしか返事ができないです。
関数を直接書き込んでも確認してみましたが、同様の結果です。
そしてこの結果というのは、MATCH関数として正常な結果です。
私自身はJakaさんがおっしゃってることを理解できているつもりなのですが、
だからこそ私の質問内容がうまく伝えられなくて、とてももどかしいです…
もう1度、もう1度だけ説明させてください。
<<操作しているブック>>
・検索したい文字はセルK1の値(変動する)…例:JP00001
・MATCH関数の返り値を入れるセルも、このブック
<<参照ブック>>
・操作しているブックのセルK1の文字(例:JP00001)が、
このブックのTOTALというシートのA列にあるかどうかを調べたい。
あれば、それが何行目にあるかを返したい。
・TOTALのA列の各セルには、値(文字)ではなく数式(関数)が入っている
→表示されている文字:関数の結果の値(例:JP00001)
…VBAでいうところのRange(○○).Text??
実際に入力されている内容:関数そのもの(例:=IF(C16="",…(以下略)
・このブックは開くときにとても重いので、開かないで処理したい
この状態で、操作しているブックに直接
=MATCH(K1,'×××\[○○○.xls]TOTAL'!A:A,0) と書き込んでも、
VBAで書き込んでも、#N/Aが返ってきます。
この結果というのが、MATCH関数では当然のもの…つまり、
参照ブックに直接入力されている「=IF(C16="",…(以下略)」を文字列のように扱ってるようで、
いくらその関数の結果の値が「JP00001」だったとしても、
操作しているブックのセルK1の値「JP00001」とは一致しないとなってしまうようです。
なので、MATCH関数に限らず、数式そのもので検索されるのではなく、
数式の結果を見てくれるようにできないものかと悩んでおります。
…結局、何度書いても同じことしか書けなくてすみません(-_-;
|
|