【VBA備忘録】Matchで日付が使えない
日付をMatchで検索したい…!
Excelシートの3行目にある日付の中からA2セルに入っている日付は何列目かをVBAで探します。
Matchで日付が検索できない…!?
ところがどっこい
Dim hani As Range
Dim d1 As Date
Dim tk As Long
Set hani = Range("3:3")
d1 = Range("A2")
tk = WorksheetFunction.Match(d1, hani, 0)
↑だとMatchの部分でエラーに!!!
よく見るエラーですね…
実行時エラー '1004’:
WorksheetFunction クラスの Match プロパティを取得できません。
な、なんでよ…!?
どうもMatchはDate型の検索ができない仕様らしい…!
ちなみにExcel関数なら普通にできる
なんでよーー!
1をかければなんとかなる
なんでかは全然わかりませんが、VBAではできないみたいなのでなんとかしたい…!
解決策は簡単で1をかければいいみたいです。数値に戻すってイメージなのかしら…?
検索値である日付 d1に×1すればすべて解決します。
Sub Matchで日付を検索する()
Dim hani As Range
Dim d1 As Date
Dim tk As Long
Set hani = Range("3:3")
d1 = Range("A2")
tk = WorksheetFunction.Match(d1 * 1, hani, 0)
MsgBox d1 & "は" & tk & "番目です"
End Sub
できた~
他にもVBAのやり方あり〼