【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のやり方あり〼
- 【VBA備忘録】初心者脱却~コピペは配列を使え!~
- 【VBA備忘録】もっと爆速!複数の別ブックを開かずに値を取得する(テキスト編)
- 【VBA備忘録】爆速!別ブックを開かずに値を取得する
- 【VBA備忘録】オリジナル関数を作って月の英語表記を数字に変更する
- 【VBA備忘録】給料日が土日祝のとき前日を取得する(会社カレンダー)
- 【VBA備忘録】ListObject(テーブル)で複数列を選択する(Vlookup)
- 【VBA備忘録】リボンにマクロを追加してクイック起動(Outlook編)
- 【VBA備忘録】VBAで特殊記号や禁則文字を入力したい!
- 【VBA備忘録】Matchで日付が使えない
- 【VBA備忘録】受信したメールから添付ファイルを保存する(Outlook編)