1

У меня есть лист со столбцом даты, введенным как дд / мм / гггг, например 15/12/2014 Однако Excel не рассматривает это как дату, поэтому я не могу применить какие-либо функции даты к этому столбцу.

Есть ли способ конвертировать это в превосходную дату (мм / дд / гггг) без использования утомительной подстроки слева $, mid $). Заранее спасибо..

2 ответа2

1

Excel изучит ваши региональные настройки и увидит, как должна быть отформатирована дата, и только если она совпадает, она автоматически отформатирует вашу ячейку как дату.

Так что если вы установили региональные настройки для использования даты в виде дд-мм-гггг (обратите внимание на -), вывод, где / используется, будет игнорироваться.

Кроме того, это может быть случай, когда ячейки имеют «перед датой». Этот символ в основном будет указывать ячейке всегда быть строкой. Это то, что Excel мог бы сделать во время импорта.

Первое, что я хотел бы сделать, это изменить региональные настройки на американскую дату, чтобы она имела / и пыталась снова загрузить электронную таблицу. Выделение всего столбца, выбор правой кнопкой мыши -> Формат ячеек и установка его на «Дата» теперь должны работать.

После успешного преобразования в дату и сохранения листа вы можете изменить свои региональные настройки.

0

Я разработал следующий код VBA и запустил его, но все еще искал более простой выход:

Function ConvertddmmyyDate(instring As String) As Date
    On Error GoTo err
    Dim dateArray() As String
    dateArray = Split(instring, "/")
    Dim dt As Date
    Dim day As Integer
    Dim month As Integer
    Dim year As Integer
    day = Int(dateArray(0))
    month = Int(dateArray(1))
    year = Int(dateArray(2))
    If year < 100 Then 'For yy formats
        year = year + 2000
    End If
    dt = DateSerial(year, month, day)
    ConvertddmmyyDate = dt
    Exit Function
    err:
    ConvertddmmyyDate = "01/01/1900"
 End Function

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .