Прошу прощения за новый вопрос, но решения в сети не нашел. Я пытаюсь сделать простой оператор if-then для диапазонов дат в VBA. Мой код (не работает) до сих пор:
LR = 52
Set rngData = Range("D2:D" & LR)
'define the data range to evaluate
For Each rngCell In rngData
Select Case rngCell.Value
Case Val(Range("'Some_dates'!O8").Value) To Val(Range("'Some_dates'!P8").Value): rngCell.Value = Range("'Some_dates'!N8").Value
Case Val(Range("'Some_dates'!O9").Value) To Val(Range("'Some_dates'!P9").Value): rngCell.Value = Range("'Some_dates'!N9").Value
Case Val(Range("'Some_dates'!O10").Value) To Val(Range("'Some_dates'!P10").Value): rngCell.Value = Range("'Some_dates'!N10").Value
Case Val(Range("'Some_dates'!O11").Value) To Val(Range("'Some_dates'!P11").Value): rngCell.Value = Range("'Some_dates'!N11").Value
Case Else: rngCell.Value = "Outside date ranges"
End Select
Next rngCell
Вывод для всех ячеек: «Вне диапазонов дат», что означает, что для всех ячеек в rngData выбрано значение «else», что неверно.
Ячейки O8: P11 на листе Some_dates определяют четыре диапазона дат (начало — столбец O, а конец — столбец P). Это даты, которые могут выглядеть как числа или даты в зависимости от того, как вы форматируете ячейку. Столбец N на листе Some_dates имеет метки для каждого диапазона дат.
Любая помощь приветствуется!