アプリ版:「スタンプのみでお礼する」機能のリリースについて

 
VBA初心者です。

ファイルA の C列 に入力されているデータが ファイルB
に含まれているかどうか検索するマクロを Cells.Find
を使って作ろうとしています。

データがファイルBに存在する場合は問題ありませんが存在
していない場合エラーが出て止まってしまいます。
ヘルプを見ると「セルが見つからなかった場合は、Nothingを返します」
と書かれていますが、どうもNothingとは返ってきません。

このエラーを回避する方法を教えてください。



例えばこんなマクロを組みました。


 For tate = 0 To 19

   Windows("ファイルA.xls").Activate
   Range("C1").Offset(tate, 0).Select
   データ = Range("C1").Offset(tate, 0)

   Windows("ファイルB.xls").Activate

   Cells.Find(データ, MatchCase:=False).Activate

 Next tate


例えば最後の2行を

   結果 = Cells.Find(What:=ISISDate, MatchCase:=False).Activate
     MsgBox (結果)

 Next tate

とするとデータが含まれている場合は「True」と返ってきますが、
含まれていない場合は MsgBox が表示される前にエラーとなってしまいます。

とりあえずこのエラーを回避する方法をご存知でしたらお教えください。


 

A 回答 (2件)

No.1です。



>見つからなかった場合の処理を組むことは可能なのでしょうか?
Notで否定しているのだから、外せば逆になりますよ。


If rg Is Nothing Then
  (見つからなかった場合の処理)
Else
  (見つかった場合の処理)
End If
    • good
    • 0
この回答へのお礼

 
間に合いませんでした。。。

先程補足書いてから気がつきました。
ハッキリ言って私の脳ミソ腐ってますね。。。

本当にありがとうございました。

お礼日時:2004/09/15 15:10

こんにちは。

maruru01です。

Nothingなのに、Activateしようとするからエラーになるのです。
いったんRangeオブジェクトにセットして下さい。


Dim rg As Range

~省略~

Set rg = Cells.Find(データ, MatchCase:=False)
If Not rg Is Nothing Then
  (見つかった場合の処理)
End If


Findのヘルプの使用例に載っていますよ。

この回答への補足

 
ありがとうございました。
初心者なのであまりよく分からないのですが、動きました。

せっかくなのでもう一つ教えてください。
見つかった場合の処理はお教え下さった通りで出来ましたが
見つからなかった場合の処理を組むことは可能なのでしょうか?

甘えてばかりで申し訳ありません。
初心者ということで大目に見てください。。。

補足日時:2004/09/15 14:40
    • good
    • 0
この回答へのお礼

 
できました。
本当にありがとうございました。

お礼日時:2004/09/15 15:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!