0

日付を次の形式で表示する日付表示用のテキストボックスがあります:2012年4月17日ですが、「2012年4月17日」のように表示されるようにフォーマットしたいと思います。このコードを試しました

UserForm1.txtDate = Format(Long Date)

コンパイラから構文エラーが発生します。どうすればよいか教えてください。ありがとう

4

1 に答える 1

2

これに関する投稿がいくつかあります。犯人はシステムの日付形式のようです。ショート、ミディアム、ロング フォーマットを使用すると、システム設定が変更されたときに結果が変わります。

  • 米国のシステムでは、主に次のように行われます。Format$(yourdate, “dd/mm/yyyy”)
  • ヨーロッパのシステムとしては、例えばFormat$(yourdate, “short date”)

フォーマットを明示的に定義することを見ると、地域設定を策定していることになります。

たとえば、短い日付は常に mm/dd/yyyy になるとは限りませんが、dd/mm/yyyy になる可能性があります。これは、実際に形式を指定するよりも重要な利点です。システムに依存するのではなく、日付の表示方法を変更するだけです (知識の有無にかかわらず)。

これに最初に遭遇したとき、VBA アプリを作成し、独自のローカライズされたシステム日付形式を持つ別の場所にある別の場所にそれを送信する人がいました。電話が鳴る... ;)

  • 短い/長い日付: システムの長い日付形式に従って日付を表示します。
  • 中間日付: ホスト アプリケーションの言語バージョンに適した中間日付形式を使用して日付を表示します。

あなたの場合は、

UserForm1.txtDate.Value = Format$(Date,"mmmm dd, yyyy")

または、超安全にするために、

Dim dtDate as Date
    dtDate = DateSerial(Year(Date), Month(Date), Day(Date)) 
    UserForm1.txtDate.Value = Format$(dtDate, "mmmm dd, yyyy") 

それが役立つことを願っています。

于 2012-11-16T17:33:20.820 に答える