Я добавлю это как ответ, но это зависит от текущих значений в ваших ячейках.
Если SrchRng
смотрит на правильные ячейки и эти ячейки содержат только слово January
, February
или Jan
, Feb
, тогда вы можете использовать DateValue дляприведите этот текст в реальную дату.
Исходя из вашего последнего комментария, текст, например, 14 июля 2018 года:
cel = DateValue(cel)
cel.NumberFormat = "mm"
Используйте этот код в цикле для преобразования значений в реальные даты, отображаемые в виде двух цифрномер месяца.
В ячейке будет содержаться значение 43295
, которое в формате Excel указано 14 июля (количество дней с 1 января 1900 года).
Весь код будет выглядеть следующим образом:
Sub AccDec()
Dim SrchRng As Range, cel As Range
Dim NumRows As Long
NumRows = Range("B13", Range("B13").End(xlDown)).Rows.Count
Set SrchRng = Range(Cells(1, 13), Cells(NumRows, 15))
MsgBox "Searching this range: " & SrchRng.Address, vbOKOnly
For Each cel In SrchRng
cel = DateValue(cel)
cel.NumberFormat = "mm"
Next cel
End Sub
Я добавил окно сообщения, так как не думаю, что оно смотрит на правильный диапазон.Кроме того, если какая-либо ячейка не имеет значения, которое может превратиться в дату, она выдаст ошибку с Type Mismatch
.