VBA: поиск даты - PullRequest
       2

VBA: поиск даты

0 голосов
/ 14 февраля 2020

Я хочу найти дату в диапазоне, а точнее, часть даты. Например, у меня есть месяц и год из пользовательского ввода, хранящиеся в двух переменных 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).

1 Ответ

0 голосов
/ 15 февраля 2020

По моему мнению, вы должны решить, каким типом данных вы хотите манипулировать. Вы предпочитаете работать с датами или строками? После этого выбора будет легче определить, какие операции будут необходимы и какой метод или функция будут применимы (вы не можете сделать то же самое с датами или строками). Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...