Я хочу найти дату в диапазоне, а точнее, часть даты. Например, у меня есть месяц и год из пользовательского ввода, хранящиеся в двух переменных userInputMonth
и userInputYear
, и теперь я хотел бы выяснить, в какой строке они появляются.
Option Explicit
Sub CheckDate()
Dim wb As Workbook
Dim ws As Worksheet
Dim userInputYear As String
Dim userInputMonth As String
Dim rngDate As Range
Dim foundCell As Range
Set wb = ThisWorkbook
Set ws = wb.Sheets(2)
userInputYear = Right(wb.Sheets(1).Range("A1").Value, 4) 'e.g. "2019"
userInputMonth = Mid(wb.Sheets(1).Range("A1").Value, 2, 2) 'e.g. "09"
Set rngDate = ws.Range("A3:A11")
Set foundCell = rngDate.Find("??." & userInputMonth & "." & userInputYear)
Debug.Print foundCell.Row '-> error
'=====Trying out stuff=====
Set foundCell = rngDate.Find(userInputMonth)
Debug.Print foundCell.Row 'works
Set foundCell = rngDate.Find(userInputMonth & ".")
Debug.Print foundCell.Row '-> error
Set foundCell = rngDate.Find("12.2019")
Debug.Print foundCell.Row '-> error
End Sub
Полагаю, проблема в формате, но как мне с этим справиться, но я не знаю, как применить что-то вроде CStr
к этой проблеме
edit: Данные в rngDate
выглядят так: 31.12.2019 (в формате даты). A1
- это текст (например, A12 2019).