質問

データを抽出して 3 つの CSV ファイル (a.csv、b.csv、c.csv) を作成する VB アプリケーションがあります。次に、別の Excel スプレッドシート (import.xls) を使用して、上記の CSV ファイルからすべてのデータをこのシートにインポートします。

import.xls ファイルには、CSV ファイルを 1 つずつ開いてデータをコピーするマクロが含まれています。私が直面している問題は、CSV ファイル内の日付が mm/dd/yyyy として保存されており、これがそのまま Excel シートにコピーされることです。ただし、日付を dd/mm/yyy 形式で表示したいと考えています。

CSV ファイルを手動で開くと、日付が正しい形式 (mm/dd/yyyy) で表示されます。この問題を解決する方法はありますか?

役に立ちましたか?

解決

使用できます フォーマット VBA関数:

Format(DateText, "dd/mm/yyyy")

そうすれば、好きなようにフォーマットできます。

より恒久的な解決策としては、Windows 自体の地域設定を変更してみてください。Excel はこれを日付の書式設定に使用します。

[スタート] -> [設定] -> [コントロール パネル] -> [地域オプション]。

言語が適切なものに設定されていること、および日付設定が希望どおりであることを確認してください。

他のヒント

この問題に遭遇したとき、私は通常、日付を yyyy-mm-dd として書き出しますが、Excel はこれを明確に解釈します。

まず第一に、他の回答はすべて良いですが、役立つと思われる詳細情報がいくつかあります

CSV ファイルにはテキストのみが含まれます。つまり、データは日付形式ではなくテキスト形式です。したがって、Excel で CSV ファイルを開くと、Excel はデフォルトでそのデータを解釈します。その必要はありません。強制的にテキストとして残すこともできますし、Mark が述べたように、インポート マクロにコードを追加して変更することもできます。自動化されたプロセスが必要な場合、これが最適なソリューションです。日付データを含む列に必要な日付形式を適用するコードを VBA のマクロに追加するだけです。あるいは、ファイルを開いてデータを貼り付けた後、列を自分で選択して形式を変更することで、これを手動で行うこともできます。数値形式をカスタマイズして (カスタムを選択)、自分で作成することができます。例: dd/mm/yyyy。

私も同様の問題を抱えていて、このように解決しました。本質的には「上記のすべて」のオプションです

  1. format(date,'dd-mmm-yyyy')日付を2-3-4フォーマットEG01-AUG-2008に変換します。
  2. Excelでこれをコピーすると、自動的に日付/時刻形式に戻ります。 cstr 1の関数について
  3. 日付がテキストとしてコピーされているセルをフォーマットします(そうでない場合、Excelのように太い場合、それはそれを再び戻します。
  4. シートをCSVファイルとして保存し、メモ帳で開いて、それが機能したことを確認します

やりすぎだと言う人もいるかもしれませんが、1 年後にユーザーから電話があり、日付がおかしいと告げられるよりは、安全策を講じたほうがよいでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top