プロが教える店舗&オフィスのセキュリティ対策術

エクセルで表示形式が「hh:mm:ss」に設定されているセルの中から
指定のセルを検索するマクロを作ろうとしているのですが、
上手くいきません。

検索する数字を変数にして変えられるようにしたいです。

Sub Macro1()
Dim temp As Double
temp = Range("A1").Value 'A1には0:00:01を入れる

Cells.Find(What:=temp, After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
End Sub

上の記述だと、実行時エラー91「オブジェクト変数またはWithブロック・・・」が出ます。
> temp = "0:00:01"
これに書き替えると「型が違います。」になり、「""」をはずすとコンパイルエラーになります。
「What:="0:00:01"」というように、直接入れると上手くいきます。

どなたか、お力をお貸しください。
よろしくお願いします。

A 回答 (3件)

こんばんは、これでは?


>Dim temp As Double
  ↓
Dim temp As Date

>LookIn:=xlValues

LookIn:=xlFormulas
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
解決しました。

お礼日時:2012/10/20 22:53

No2です。


余計な事を記述した様ですので以下の記載は無視して下さい。

> temp = "0:00:01"
 ⇒変数の属性がDoubleだからです。
    • good
    • 1

> temp = "0:00:01"


 ⇒属性がDoubleだからです。

>「What:="0:00:01"」というように、直接入れると上手くいきます。
 ⇒日付の検索もそうなんですが、文字列とすれば検索できますよ。

  一例です。
  変数に代入でもよいがDimも変更しないといけないので、直接指定してみました。
  Cells.Find(What:=Range("A1").Text, After:=ActiveCell, LookIn:=xlValues, _
  
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
直接指定でも、いいんですね。

お礼日時:2012/10/20 22:54

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