2

データを抽出して 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) で表示されます。この問題を解決する方法はありますか?

4

4 に答える 4

16

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

于 2008-10-15T05:41:09.557 に答える
8

Format VBA 関数を使用できます。

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

それはあなたが好きなようにフォーマットします。

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

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

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

于 2008-10-15T05:42:51.767 に答える
1

まず第一に、他の回答はすべて良いですが、役立つ情報がいくつかあります

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

于 2008-10-15T06:44:16.310 に答える
0

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

  1. format(date,'dd-mmm-yyyy') 日付を 2-3-4 形式の eg01-aug-2008 に変換すると、コンピュータが 01-aug を 08-jan と間違えることはありません:-)
  2. これをエクセルにコピペすると自動的に日付/時刻形式に戻るのでcstr、1の関数でonを使って結果を文字列に変換する
  3. 日付がコピーされたセルをテキストとしてフォーマットします(そうしないと、Excelのように頭が固くなり、再び日付/時刻に変換されます
  4. シートを csv ファイルとして保存し、メモ帳で開いて動作を確認します。

やり過ぎだと言う人もいるかもしれませんが、ユーザーから 1 年後に電話がかかってきて、日付に何か変なことをしていると言われるよりは、安全を期したほうがよいでしょう。

于 2008-11-05T12:25:37.923 に答える