• 締切済み

エクセルVBA:プロシージャーの実行条件

選択した範囲の中に、"#N/A"という文字列が一つもなければ選択範囲をcopy→value pasteというマクロを作りたいのですがどのようにすればいいでしょう? ユーザー定義関数で別のデータソースから数値を引っ張ってきた後value pasteしたいのですが、数値を引っ張ってくるのに結構時間がかかる為、数値を引っ張ってくるプロシージャーの後でvalue pasteするプロシージャーを続けて実行すると、数値を引っ張れていないセルは"#N/A"をcopyしてそのままpasteしてしまいます(データが来ていないセルは"#N/A"が表示されているので)。 宜しくお願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>確かこの#N/AはIsNAでは拾えなかったような気が #N/Aは、拾えますが、 もしかして#N/Aではなくて本当に文字列なんでしょうか?

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

Application.WorksheetFunction.IsNA を使って選択した範囲のセルを調べると良いと思います。 適当なワークセルを使えるなら そのセルに=min(範囲)とかしておくと、調べるのが一箇所で済むので簡単です。

simon_2000
質問者

お礼

ところでこのやり方だと、#N/Aが無くなる迄繰り返し、IsTextを実行する必要がありますが、これはどのようにしたら良いでしょう? また、データを落とすのに結構時間がかかるのですが、IsTextを実行するインターバルみたいなものを設定することは可能でしょうか?

simon_2000
質問者

補足

有難うございます。ちょっと今トライできないので出社したら試して見ます(確かこの#N/AはIsNAでは拾えなかったような気がするので、IsTextでやってみようと思います)。

関連するQ&A