Excel - копировать отображаемое значение, а не фактическое значение - PullRequest
8 голосов
/ 13 января 2012

Я пилот и использую программу бортового журнала Logten Pro.У меня есть возможность взять таблицы Excel, сохраненные из моего программного обеспечения для управления полетами, и импортировать их в Logten Pro с использованием формата CSV.

Однако моя проблема заключается в том, что программное обеспечение для управления рабочим полетом экспортирует дату и времявзлета полета в одну ячейку в следующем формате Excel: ДД / ММ / ГГГГ Ч: ММ: СС PM.Это прекрасно обрабатывается в Excel и форматируется по умолчанию в ДД / ММ / ГГ, даже если фактическое значение является более конкретным, включая полную дату и группу времени.

Это проблема, поскольку Logten Proбудет автоматически импортировать дату, только если она в формате ДД / ММ / ГГ, и нет никакого способа извлечь только отображаемую дату ДД / ММ / ГГ, а не фактическое значение полной группы времени и даты, если только вы вручную не пройдетеи удалите дополнительный текст из функционального поля.

Мой вопрос: существует ли макрос VBA, который может автоматически копировать фактический отображаемый текст и вставлять его в другую ячейку, изменяя фактическое значение, как это делается, чтобытолько значение ДД / ММ / ГГ?Кроме того, можно ли это сделать для обработки всего столбца, а не отдельных ячеек за раз?

Примечание. У меня нет опыта работы с VBA, поэтому идеальным ответом будет просто полная строка VBA, которую я мог бы скопировать и вставить.

Спасибо.

Ответы [ 2 ]

10 голосов
/ 13 января 2012

Как указано в комментариях, лучше использовать VBA, а не формулы.

Эта формула:

TEXT(A1,"dd-mm-yyy")

вернет форматированную дату в текстовом виде. Вы можете перетащить формулу во весь диапазон ваших ячеек и Copy/Paste Special> Values, чтобы у вас были только необходимые значения для импорта в Logten Pro.

0 голосов
/ 13 января 2012

Существует три варианта использования формул.

Округление

Excel сохраняет дату в виде числа и использует форматирование для отображения в виде даты.Формат: date.time, где целое число - это дата, а дробь - время.

Например, 01.01.2012 22:30:00 хранится как 40909,9375

Все значения после запятой относятся к часам и минутам

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

=ROUNDDOWN(A1,0)

Затем отформатируйте значение каккороткое свиданиеЗатем он будет отображаться как 01/01/2012

INT

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

=INT(A1)

Текст

Альтернативно, только дата может быть извлечена в виде текста с использованием этой формулы

=TEXT(A1,"dd/mm/yyyy")

Затем будет отображаться как 01/01/2012

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...