Вопрос

Я автоматизирую Excel, используя систему макросов как руководство к тому, что мне следует делать с помощью автоматизации.Когда я форматирую столбец как дату, макрос генерирует NumberFormat чтобы столбец был:

[$-409]m/d/yy h:mm AM/PM;@

я пытаюсь расшифровать, что это на самом деле означает.Я собираю из поиска в Google, что значения в квадратных скобках являются "состояние", и это если условие:

$-409

будет выполнено, то он будет использовать NumberFormat

m/d/yy h:mm AM/PM

если нет, он использует NumberFormat

@

В ссылках, которые я нашел, говорится, что числовой формат "@" является Текстовый заполнитель

Итак, мои вопросы:

  1. Что такое условное $-409 тестирование?Это сравнение чего-то с -409 (т.е. минус четыреста девять), и если да, то в чем заключается знак доллара это сравнение?

  2. Если условие терпит неудачу и оно прибегает к Текстовый заполнитель "at-sign", как это отображается?

Это было полезно?

Решение

Чтобы прояснить то, что сказали другие:

[$-409] — это локаль код, заданный в шестнадцатеричном формате.Добавление к дате определенного кода локали определяет, что будет отображаться при использовании различных кодов формата даты и времени.Например, используя дату

28 ноября 1973 г., 11:28:13

в качестве примера для следующей таблицы:

Format Code  409 (English United States)  804 (Chinese PRC)
===========  ===========================  =================
m            11                           11
mm           11                           11
mmm          Nov                          十一月
mmmm         November                     十一月
d            27                           27
dd           27                           27
ddd          Mon                          二
dddd         Monday                       星期二
y            73                           73
yy           73                           73
yyy          1973                         1973
yyyy         1973                         1973
AM/PM        AM                           上午

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

[$-409]mmmm dd yyyy  h:mm AM/PM
November 27 1973  11:28 AM


[$-804]mmmm dd yyyy  h:mm AM/PM
十一月 27 1973  11:28 上午

Поскольку поиск списка кодов локали похож на выдергивание зубов, вот несколько ссылок:

Константы и строки идентификатора языка (Основной источник, archive.is)

Коды локали Windows, отсортированные по локали (archive.is)

Коды локали Windows, отсортированные по локали (archive.org, archive.is)

Другие советы

Нааф и Грант Вагнер четко ответили на вопрос о вашем $-409, поэтому я просто дополню недостающую часть:

Символ «@» после точки с запятой сообщает Excel, как обращаться с данными, если вы вводите строку вместо действительной даты.А @ просто означает «поместите сюда любой текст дословно».

Несколько быстрых примеров, иллюстрирующих эту мысль:

=TEXT("abc","hh:mm;@")
abc


=TEXT("abc","hh:mm;@@")
abcabc

Видеть Эта статья для подробного описания параметров форматирования текста.

Эта почта объясняет это.По сути, это 409 идентификатор локали для «Английского – США».Если вы использовали [$-414], например, тогда дата будет отформатирована как «Норвежский (букмол)».

Я предполагаю, что по вопросу (2) необработанные данные будут представлены в виде строки, а не отформатированы.Быстрый тест подтвердит это.

[$-409] не похоже на состояние.Кажется, это код локали.

Если я форматирую ячейку с помощью Обычай формат [$-409]m/d/yy h:mm AM/PM;@, введите дату: 1/1/9, затем просмотрите форматирование ячейки, я вижу Дата формат m/d/yy h:mm AM/PM с Локаль (местоположение) из English (United States).

Если вы измените формат на что-то вроде [$-439]m/d/yy h:mm AM/PM;@ вы увидите содержимое ячейки на другом языке.

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

Вот список Идентификаторы локали, назначенные Microsoft.

В Excel 2007 существует ошибка, из-за которой все общие форматы заменяются форматом даты типа [$-409].
Обычно использование [$-409] является приемлемым форматом.
Microsoft пока не предоставила исправления для этой ошибки.Эта ошибка обычно возникает в больших и общих книгах Excel.

Если у вас когда-либо случалось, что все ваши общие форматы меняются на даты, попробуйте перейти в «Стили ячеек», щелкнуть правой кнопкой мыши «Нормальный» и снова изменить обычный формат на «Общий».В поле будет указан тип формата «Обычный».Это ошибка, поскольку обычно она должна быть «общей», а не какой-то версией [$-409].

В итоге мне пришлось полностью удалить формат из книги.Для этого необходимо запретить общий доступ к рабочей книге.Чтобы удалить формат [$-409], указанный выше в типе ячеек «Обычный», из книги, щелкните ячейку правой кнопкой мыши, выберите «Пользовательский», прокручивайте, пока не найдете тип формата [$-409], указанный выше, затем удалите все форматы. вернется обратно к тому, что называется общим.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top