VBAで日付対応のデータを検索の方法

VBAでは、Range.Findメソッドを使用して、特定の日にちに対応するデータを検索できます。コード例を次に示します。

Sub FindDataByDate()
    Dim ws As Worksheet
    Dim searchRange As Range
    Dim findDate As Date
    Dim foundCell As Range
    
    ' 设置要搜索的工作表
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    
    ' 设置要搜索的范围
    Set searchRange = ws.Range("A1:A10") ' 假设日期在A1:A10范围内
    
    ' 设置要查找的日期
    findDate = DateSerial(2022, 1, 1) ' 假设要查找的日期是2022年1月1日
    
    ' 使用Range.Find方法查找日期对应的单元格
    Set foundCell = searchRange.Find(What:=findDate, LookIn:=xlValues, LookAt:=xlWhole)
    
    ' 检查是否找到匹配的单元格
    If Not foundCell Is Nothing Then
        ' 找到了匹配的单元格,输出所在行的数据
        MsgBox foundCell.Offset(0, 1).Value ' 假设要输出所在行的下一列数据
    Else
        ' 没有找到匹配的单元格
        MsgBox "没有找到对应日期的数据。"
    End If
End Sub

上記のサンプルコードでは、Range.Findメソッドを用いて一致する日付セルを検索しています。Whatパラメーターは検索する日付を指定し、LookInパラメーターは検索対象を指定し、LookAtパラメーターは一致方法を指定しています。一致するセルが見つかった場合、foundCellオブジェクトから関連データを取得できます。一致するセルが見つからなかった場合、対応するプロンプト情報が出力されます。

サンプルコードのシート名、検索範囲、日付、出力列を適宜置換して、実際の運用に合わせてください。

bannerAds