2017-12-27 16 views
0

私はCSVファイルを含むフォルダをユーザーが選択できるようにExcel VBコードを書いており、マクロはすべてのCSVファイルをCSVファイルのファイル名として名付けられたワークシートとともにブックに挿入します。しかし、ワークシートの日付にアメリカの日付の問題があります。一部のWebサイトでは、Local:= Trueがこの問題を解決するのに役立つことを示唆していますが、Excel VBAを初めて使用しているので、誰かここにいる誰かがこの問題に関して私を助けることができるより良い提案をしていますか?ありがとうございますExcel VBAのアメリカン化の問題を解決しましたか?

Set wb = ActiveWorkbook 
With Application.FileDialog(msoFileDialogFolderPicker) 
    If .Show Then myDir = .SelectedItems(1) & "\" 
End With 
If myDir = "" Then Exit Sub 
Application.ScreenUpdating = False 
fn = Dir(myDir & "*.csv") 
Do While fn <> "" 
    With Workbooks.Open(myDir & fn) 
     .Sheets(1).Copy after:=wb.Sheets(wb.Sheets.Count) 
     .Close False 
    End With 
    fn = Dir 
Loop 
MsgBox ("All data from your selected source file are completed extracted.") 
+0

どのように日付が表示され、どのように表示する必要がありますか? – ashleedawg

+0

私のCSVファイルでは、実際の日付は1987年2月1日です.CSVをインポートすると、01/02/1987 – wang

+0

...と表示され、その日付もフォルダの名前ですか?私はあなたが日付を変換する必要があるところを把握しようとしています。 01は月か日ですか?より良い例は、「12/13/1987」または「13/12/1987」を表示する必要があるかどうかです。 – ashleedawg

答えて

0

希望の日付を表示するには、Range.NumberFormatプロパティを設定する必要があります。その後、例えば

、あなたの日付が列「D」である場合のようなもの:

wb.Sheets(i).Range("D:D").NumberFormat = "yyyy-mm-dd" 

またはそれが望ましい結果を与える場合もRange.NumberFormatLocalを使用することができます。

+0

私はOPが試みているか分からない別の日付を表示するには、ファイル名で使用するために別の値が必要だと思います(この場合、数値形式は役に立ちません)。 – ashleedawg

1

表示ワークシート上の別の日付するには、セルまたはセルを選択し、Ctrlキー + を押してセルの書式を変更することにより、数値の書式を変更することができます。あなたに適したDateフォーマットを選択するか、Customを選択して、必要に応じてM/D/YYYYまたはD/M/YYYYのようなフォーマットを入力します。参照:Format a date the way you want

ワークシート上フォーマットされたテキストに日付を変換するには、あなたがTEXT functionを使用することができます。例えば、(セルA1を使用して):

=TEXT(A1, "M/D/YYYY") 

は、あなたがFORMAT functionを使用することができ、VBAフォーマットされた文字列として日付を使用するには。例えば(セルA1を使用して):

Format(Range("A1"), "M/D/YYYY") 

あなたがプログラムでセルの書式設定を変更する必要がある場合、あなたはNumberFormat propertyを使用することができます。

.NumberFormat = "M/D/YYYY" 

ワークシートにNumberFormatLocal property、複数のロケールで使用する場合

.NumberFormatLocal 
関連する問題