[[20100514162220]] 『VBA FINDメッソドについて』(MOMO) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA FINDメッソドについて』(MOMO)

バージョン:2007

VBA初心者です。

セルA1にシリアル値が入っていて、列Bの中にこのシリアル値が存在すれば、その4つ右のセルにAAAという値を入れる場合のVBAです。その一部です。

Dim HIZUKE As Date

HIZUKE = Range("A1").Value

Dim MMM As Range

    Set MMM = Columns("b").Find(WHAT:=HIZUKE)
        If MMM Is Nothing Then
           MsgBox "該当データ無し"
        Else
           MMM.Offset(0, 4).Select
           ActiveCell.Value = "AAA"
        End If

ここで列BにセルA1と同じシリアル値が入っていた場合はきちんと稼働するのですが、計算式で表示されていた場合に"該当データ無し"となってしまいます。

例えばセルA1に2010/5/14で表示されるシリアル値を入れていたとします。

そして列Bのどこかに 値でなく計算式を入れて 2010/5/14と表示をさせてた場合「例:=TODAY()」 に、きちんと動くようにしたいのです。どなたか、ご教授願います。


 似たようなHNですね^^

 Findメソッドの引数は省略しないようにしましょう。
 前回の検索時の設定を引き継いでしまうので。

 原因はLookInのパラメータがxlFormulasになっているからだと思います。
 xlValuesに治すと大丈夫だと思います。

 あと、気になるのはAfterの引数でActivecellがColumns("b")に無いとエラーになるので
 下のようにしてみてはどうでしょうか?

  Sub test()
  Dim HIZUKE As Date

  HIZUKE = Range("A1").Value

  Dim MMM As Range
  With Columns("b")
    Set MMM = .Find(What:=HIZUKE, After:=.Cells(.Cells.Count), LookIn:=xlValues, _
                    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                    MatchCase:=False, SearchFormat:=False)
  End With
  If MMM Is Nothing Then
    MsgBox "該当データ無し"
  Else
    MMM.Offset(0, 4).Value = "AAA"
  End If
  End Sub

 (momo)

ご回答ありがとうございます。

試してみたのですが、この場合は文字列は認識するものの、シリアル値自体を認識しないようです。(該当データ無し と表示)

FIND メソッドの引数を調べてみます。

(MOMO)


 検索値HIZUKEをB列の表示形式に合わせた「文字列」にしてやると
 うまくいきました。

 Dim HIZUKE As String
 HIZHIZUKE = Format(Range("A1").Value, "yyyy/m/d")
                                        ^^^^^^^^  B列の書式に合わせて下さい。
 違う方法があるのかもしれませんが。 
 
(純丸)(o^-')b


 Dim HIZUKE As String
 HIZHIZUKE = Range("A1").Text
 
ではいかがでしょう。
(みやほりん)(-_∂)b


 ↑ A1とB列の表示形式が同じなら、一番簡単でしたね。
 
(純丸)(o^-')b

できました。私は A1と2010年5月14日と表示しており、列Bには5/14といったような表示形式にしておりました。あくまで、シリアル値で比較しているものだと思ってましたが、表示形式が関係あったとは思いもしませんでした。ありがとうございました。
(MOMO)


http://www.officetanaka.net/excel/vba/tips/tips131.htm
 上記ページで詳しく検証されてます。
 (とおりすがりん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.