Poldet1.ru

Пул Дет №1
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как преобразовать yyyy-mm-dd-в стандартную дату в Excel?

Формат даты в vba excel

У меня есть столбец даты, который содержит даты смешанного формата. Например:

В данном случае в одном столбце есть два разных формата: дд.мм.гггг и мм/дд/гггг. Я хочу изменить формат всех дат в столбце yyyyy-mm-dd с помощью сценария VBA. Вот что у меня есть на данный момент:

Поскольку я новичок в VBA, прошу простить меня за отсутствие элегантности. Если я изменю аргумент в функции Format с yyyyy-mm-dd на dd/mm/yyyyy, она работает, но только для дат в формате mm/dd/yyyy, оставляя столбцы dd.mm.yyyy нетронутыми. Буду признателен за любой совет.

Формат данных в vba excel

6 ответов

Решение 8 [2011-08-18 14:21:00]

ОБНОВИТЬ: НОВЫЙ ОТВЕТ

Настало время найти решение, которое поможет справиться с задачей! В подпрограмму включена функция, выполняющая замену (это отличная функция!). Выполните команду, и все записи в столбце A будут исправлены.

Размещение функций в один модуль:

Как это работает.. У меня есть отличная функция RegexReplace, которая позволяет выполнять замену с использованием регулярных выражений. Submearly петли через вашу колонку A и заменяет регулярное выражение для тех двух случаев, о которых вы упомянули. Причина, по которой я сначала использую Instr(), — это определить, нужна ли ему замена и какой вид. Вы можете технически пропустить это, но делать замену на ячейках, которые не нужны, это действительно дорого. В конце я отформатирую ячейку в пользовательский формат даты независимо от того, что внутри для безопасной меры.

Если вы не знакомы с Regex (для ссылки: http://www.regular-expressions.info/), я использую следующее выражение:

  • Каждый элемент в() — группы захвата — иначе, материал, который вы хотите испортить
  • d обозначает число [0-9].
  • <2>означает 2 of, а <4>- 4 of. Я был здесь явно для безопасности.
  • efore. в первой замене необходимо, так как "." имеет особое значение.
  • В регулярном выражении VBA вы ссылаетесь на группы захвата, используя

    Примеры

    Использование функции Format в выражении. Функцию Format можно использовать в любом выражении. Например, вы можете использовать его в запросе как часть псевдонима поля или в свойстве Data текстового поля в форме или отчете. Вот пример выражения, которое можно использовать в свойстве Filter отчета, чтобы отобразить только записи за предыдущую неделю.

    В этом примере в источнике записей отчета есть поле "Дата", содержащее дату изменения каждой конкретной записи и использующееся в отчете. Во время выполнения отчета результаты фильтруются и отображаются только те записи, в которых значение недели в поле "Дата" (Format([Дата],"ww")) равно прошлой неделе (Format(Now(),"ww")-1).

    Использование функции Формат в коде VBA

    Примечание: В следующих примерах показано использование этой функции в модуле Visual Basic for Applications (VBA). Для получения дополнительной информации о работе с VBA выберите Developer’s Reference из выпадающего списка рядом с полем поиска и введите одно или несколько слов в поле поиска.

    В данном примере показаны различные варианты использования функции Format для форматирования значений с помощью предварительно заданных форматов и форматов, определенных пользователем. Для разделителя даты ( /), разделителя времени ( и литералов AM/ PM фактические отформатированные выходные данные, отображаемые системой, зависят от ее региональных параметров. В среде разработки для отображения времени и даты используется краткий формат времени и даты, заданный в региональных параметрах программы. При отображении в работающей программе применяется краткий формат даты и времени из региональных параметров системы, который может отличаться от региональных параметров программы. В этом примере используется локаль "Английский (США)".

    MyTime и MyDate отображаются в среде разработки с использованием текущих параметров системы для формата короткого времени и даты.

    Использование функции форматирования для пустых строк

    В Microsoft Access версии 2.0 и более ранних версиях функцию Format можно использовать для возврата одного значения для пустой строки и другого значения для значения. Например, вы можете использовать выражение формата, такое как следующее, с функцией Format, чтобы вернуть соответствующее строковое значение из кода:

    Используя Microsoft Access 97 и более поздние версии, вы должны проверить, является ли значение Null, и на основе результата вернуть соответствующее значение. Если вы используете функцию Format в выражении, вы можете использовать функцию IIf, чтобы:

    varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))

    Это изменение применяется только при использовании функции Format для форматирования строк в зависимости от того, пустая это строка или строка со значением Null. При использовании функции Format другие выражения форматирования работают так же, как и в предыдущих версиях.

    Если вы конвертируете базу данных из Microsoft Access 2.0 или более ранней версии в Microsoft Access 2002 или более позднюю версию, вы должны изменить текст приложения так, чтобы проверка нулевого регистра выполнялась раздельно.

    no. группы. Вот как я переворачиваю порядок из 3-х элементов.

Для этого вам не нужен VBA. Эта формула однослойной электронной таблицы поможет вам в этом:

Это предполагает, что день и месяц всегда указываются как двузначные числа (например, всегда 03, а не только 3), а год имеет четыре цифры (т.е. "ограничен" до 1000-9999). Но если это не относится к вам, то формула может быть легко скорректирована в соответствии с вашими потребностями.

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

Надеюсь, что это будет полезно для вас!

1 шт [2014-08-29 22:17:00]

Жан-Франсуа Корбетт предлагает формулу, которая работает, но может быть сокращена более чем наполовину из-за отказа от сообщения об ошибке (на основании того, что #VALUE! является информативным) и другого IF, двух DATE, путем применения IFERROR вместо ISERROR и SUBSTITUTE вместо набора LEFT, MIDDLE, RIGHT:

Это относится к интерпретации, упомянутой @Issun в комментарии OP, и предполагает, что вывод будет связан с ячейками, отформатированными в формате yyyy-mm-dd.

Его можно записать с помощью подпрограммы, подобной этой:

Когда я пытаюсь вывести дату dd/mm/yyyyy hh в Excel, дата появляется, как и ожидалось:

Как вы можете видеть выше, я отобразил дату и время в следующем виде:

Но я не могу вывести дату в формате dd/mm/yyyyy hh:mm:ss, вывод выглядит следующим образом

Как преобразовать yyyy-mm-dd-в стандартную дату в Excel?

Вы импортировали листы, даты которых отформатированы в формате yyyy-MM-DD-DD. Как преобразовать эти даты в стандартный формат даты mm / dd / yyyy, чтобы они работали? Ниже будут рассмотрены некоторые методы решения этой проблемы.

Преобразование гггг-мм-дд в мм / дд / гггг с помощью формул

Следующие две формулы преобразуют формат даты yyyy-mm-dd к стандартному формату даты.

Выберите ячейку, в которую вы поместите новый формат даты, выберите одну из формул, приведенных ниже, а затем нажмите кнопку Перейти к квадрату.

=Text(DATE(LEFT(A1,4),MID(A1,6,2),RIGHT(A1,2)),»mm/dd/yyyy»)
док гггг мм дд по стандарту 1

Преобразование гггг-мм-дд в мм / дд / гггг с помощью Kutools for Excel

Если есть даты с несколькими форматами, которые нужно преобразовать в стандартный формат даты, можно попробовать применить утилиту Convert to Date в Kutools для Excel.

После установки Kutools for Excel выполните следующие действия: (Загрузите Kutools for Excel бесплатно прямо сейчас!)

Выберите даты, которые вы хотите преобразовать, нажмите Kutools > Content > Convert to Date .
док гггг мм дд по стандарту 2

Затем все выбранные даты были преобразованы в стандартный формат даты.
док гггг мм дд по стандарту 3

В диалоговом окне Преобразовать в дату выберите даты, затем нажмите Восстановить.

голоса
Рейтинг статьи
Читайте так же:
Как преобразовать нули в тире в Excel?
Ссылка на основную публикацию
Adblock
detector