Форматирование дат к одному виду. Данила, I need help!

Программирование на Visual Basic for Applications
erzhavin
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 11.07.2005 (Пн) 13:29

Форматирование дат к одному виду. Данила, I need help!

Сообщение erzhavin » 13.07.2005 (Ср) 8:28

Имею столбец с датами вида 01.07.05 и 07/01/05. (Первое июля) Нужно привести все даты к виду день.месяц.год. (01.07.2005). Вообще реально ли преобразовать это? Что то никак не могу ссобразить...Это все нужно грузить потом в Access, поэтому все должно быть единообразно! Посоветуйте с кодом, если можно! :oops:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.07.2005 (Ср) 8:31

Даты где?
Даты текстом?
Даты датами?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.07.2005 (Ср) 8:35

Код: Выделить всё
Function NormalizeDate(ByVal Value As String) As Date
Dim v1 As Long, v2 As Long, v3 As Long
v1 = Val(Mid$(Value, 1, 2))
v2 = Val(Mid$(Value, 4, 2))
v3 = Val(Mid$(Value, 6))
If v3 < 100 Then
  If v3 < 38 Then
    v3 = 2000 + v3
  Else
    v3 = 1900 + v3
  End If
End If
If Mid$(Value, 3, 1) = "." Then
  NormalizeDate = DateSerial(v1, v2, v3)
Else
  NormalizeDate = DateSerial(v2, v1, v3)
End If
Lasciate ogni speranza, voi ch'entrate.

erzhavin
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 11.07.2005 (Пн) 13:29

Сообщение erzhavin » 13.07.2005 (Ср) 8:56

Ага, спасибо, тока не понял почему Mid$ а не просто Mid и что такое If v3 < 38 ? Откуда 38? Я тока учусь...Ногами не пинать! :oops:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.07.2005 (Ср) 9:27

Mid$ правильнее будет, это строковая функция, а Mid - Variant.
А 38... Ну захотелось мне 38.
Lasciate ogni speranza, voi ch'entrate.

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 13.07.2005 (Ср) 9:50

А чем Format$("01/07/05", "dd.mm.yyyy") не устраивает?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 13.07.2005 (Ср) 9:50

Alibek, правильнее когда хочется 42 :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.07.2005 (Ср) 9:57

RayShade писал(а):Alibek, правильнее когда хочется 42 :)

Это смотря кто что читает :)
Если читать Адамса, то 42, если MS и пророка ее MSDN, то 30. Ну а таким закоренелым агностикам как я, в самый раз будет 38 :)
Lasciate ogni speranza, voi ch'entrate.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 13.07.2005 (Ср) 10:22

2 erzhavin: это просто трактовка даты, например, "01.01.38" - это 01.01.1938 или 01.01.2038? alibek поставил "порог" на 38 год - все, что раньше - "20ХХ", все, что позже - "19ХХ".

erzhavin
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 11.07.2005 (Пн) 13:29

Сообщение erzhavin » 13.07.2005 (Ср) 11:24

Все понял! Сделал, разобрался! Спасибо!

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 13.07.2005 (Ср) 11:40

[off]
Есть еще "случайное число" - 14.
[/off]


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 57

    TopList