42

私はExcelを自動化しており、自動化を通じて何をすべきかについてのガイドとしてマクロシステムを使用しています。列を日付としてフォーマットすると、マクロNumberFormatは列のを次のように生成しました。

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

私はこれが本当に何を意味するのかを解読しようとしています。グーグルから、角括弧内の値は「条件」であり、条件が次の場合は次のようになります。

$-409

が満たされている場合は、NumberFormat

m/d/yy h:mm AM/PM

そうでない場合は、NumberFormat

@

私が見つけた参考文献によると、数値形式「@」はテキストプレースホルダーです

だから私の質問は:

  1. 条件付き$-409テストとは何ですか?何かを-409(つまりの499 )と比較していますか?もしそうなら、それが比較しているドル記号は何ですか?

  2. 条件が失敗し、テキストプレースホルダーの「アットマーク」に頼る場合、それは何として表示されますか?

4

5 に答える 5

48

他の人が言ったことを明確にするために:

[$ -409]は、16進数で指定されたロケールコードです。日付の前に特定のロケールコードを付けると、さまざまな日時形式コードを使用したときに何が表示されるかが決まります。たとえば、日付を使用します

1973年11月28日11:28:13AM

次の表の例として:

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                           上午

したがって、最終的に、2つの異なるロケール識別子を持つ同じフォーマットコードは、異なる結果をもたらします。

[$-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.orgarchive.is

于 2009-05-22T18:27:07.133 に答える
12

NaafとGrantWagnerはあなたについての質問にきちんと答えた$-409ので、不足している部分を埋めます。

セミコロンの後の「@」は、有効な日付の代わりに文字列を入力した場合のデータの処理方法をExcelに指示します。@単に「ここに任意のテキストを逐語的に配置する」という意味です。

ポイントを説明するためのいくつかの簡単な例:

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


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

テキストフォーマットオプションの詳細については、この記事を参照してください。

于 2009-05-21T22:53:27.030 に答える
8

この投稿はそれを説明しています。基本的に、409は「English- UnitedStates」のロケールIDです。たとえば、を使用した場合[$-414]、日付は代わりに「ノルウェー語(ブークモール)」にフォーマットされます。

質問(2)についての私の推測では、生データはフォーマットされるのではなく、文字列として表示されます。簡単なテストでこれを確認できます。

于 2009-05-21T20:27:28.790 に答える
4

Excel 2007には、すべての一般的な形式を[$-409]タイプの日付形式に変更するバグがあります。
通常、[$-409]の使用は問題ない形式です。
Microsoftが提供しているバグの修正はまだありません。このバグは通常、大規模な共有Excelブックで発生します。

すべての一般的な形式が日付に変更された経験がある場合は、セルスタイルに移動し、[標準]を右クリックして、[通常]を[一般]に戻します。ボックスに通常のフォーマットタイプが表示されます。これはバグです。通常、[$-409]のバージョンではなく、「一般的な」ものである必要があります。

ブックからフォーマットを完全に削除する必要がありました。これを行うには、ブックを非共有にする必要があります。上記の[通常]セルタイプで識別されたフォーマット[$-409]をワークブックから削除するには、セルを右クリックして[カスタム]を選択し、上記で識別された[$ -409]フォーマットタイプが見つかるまでスクロールしてから、すべてのフォーマットを削除しますいわゆる一般に戻ります。

于 2010-07-13T20:09:20.330 に答える
3

[$-409]条件ではないようです。ロケールコードのようです。

のカスタム形式でセルをフォーマットする場合[$-409]m/d/yy h:mm AM/PM;@、日付を入力します:1/1/9、次にセルのフォーマットを表示すると、ロケール(場所)がの日付形式が表示されます。m/d/yy h:mm AM/PMEnglish (United States)

フォーマットを次のようなものに変更する[$-439]m/d/yy h:mm AM/PM;@と、セルの内容が別の言語で表示されます。

よくわかりません@。正しいフォントまたはロケールが使用できない場合に日付を表​​示する方法を示している可能性があります。

これは、Microsoftによって割り当てられたロケールIDのリストです。

于 2009-05-21T20:29:20.423 に答える