Дорогие форумчане, прошу помощи в следующем:
Допустим есть ячейка с датой, но дата может быть написана следующими способами:
1. 01.01.2011
2. 01_01_2011
3. 01,01,2011
4. 01 01 2011
5. 01.01.11
6. 01_01_11
7. 01,01,11
8. 01 01 11
Подскажите, пожалуйста, возможно кому-то подобную проблему уже доводилось решать, как можно привести все эти способы к единому? Возможно есть какая-то стандартная функция?
Пока что первое (правда самое простое), что приходит на ум - использовать Replace() и заменять указанные по номеру символы
Заранее благодарен
Приведение данных, содержащих дату, к стандартному виду ?
Модератор: Naeel Maqsudov
postrelll
Пусть, например, требуется перевести в формат "Дата" данные, находящиеся в диапазоне "A1:A8".
Для этого, можно использовать макрос:
Подставьте требуемый диапазон (либо Selection). В случае, если в заданном диапазоне встретится значение, которое невозможно преобразовать в формат "Дата", то оно останется "как есть". Ошибка игнорируется.
Есть функция CDate(). Но она понимает не все разделители. Так, среди указанных разделителей в Вашем примере, это символ подчеркивания.Возможно есть какая-то стандартная функция?
Пусть, например, требуется перевести в формат "Дата" данные, находящиеся в диапазоне "A1:A8".
Для этого, можно использовать макрос:
Код: Выделить всё
Sub Main()
Dim x As Range, i As Long, a()
Set x = [A1:A8]: a = x.Value
x.NumberFormat = "m/d/yyyy": On Error Resume Next
For i = 1 To UBound(a, 1)
a(i, 1) = CDate(Replace(a(i, 1), "_", "."))
Next: x.Value = a
End Sub