としての英語の日付形式をinterpeting:VBA:私は英語の形式で日付を含むスプレッドシートを持っている文字列
12 Feb 2015
13 Oct 2016
etc.
しかし、私のMS Excelがフランス語であることから、それが日付としてではなく文字列としてそれらを取ることはありません。 。
これらの値を解析する必要があるため、手順を実行しますが、迷惑なことが起こります。 OS/Microsoftの言語に関係なく英語で設定されたVBAは、12 Feb 2015
を日付として取得し、それを印刷するとフランス語の日付(12-févr-2015
、12/02/2015
)が返されます。これにより、その値と以前の12 Feb 2015
との比較ができなくなります。
VBAに文字列を日付として解釈させないように頼むことができますか?
- 内の文字列
12 Feb 2015
を入れて:ここでは私のコード+テストケースの簡易版(私は英語エクセル上でそれを実行している場合は、問題を見ることができません推測する)でありますスプレッドシートの範囲A1
実行には、以下のコード:それは前にあったよう
Sub test() myVal = Range("A1").Value Range("A2").Value = myVal End Sub
範囲(「A2」)の値は、Excelの言語ではなく、文字列に日付となります。
注:は私が値ではなく、日付のString
なるようにするRange("A2").Value = "'" & myVal
を書くと考えているが、それは後でとにかく、'12 Feb 2015
で12 Feb 2015
を比較し、する私を可能にしていない、12 Feb 2015
になります日付は既にmyVal = Range("A1").Value
で読んでいます。
これは実際に '12-févr-2015'をとり、それを' 12/05/2015'にするのか、それともこれを記述する際の技術的な誤りですか? – Vityata
サンプルコードではVariantを使用しています。値の解釈方法を制御するには、使用している変数のデータ型を制御する必要があります。 –
@Vityataセルの中に '12-févr-2015'と表示されていますが、F2を押して値を確認すると' 12/02/2015'になります。 2月の代わりに5月は入力エラーです、今すぐ変更します! –