我编写了一个Excel VB代码,使用户可以选择包含CSV文件的文件夹,宏将所有CSV文件插入到工作簿中,每个工作表都被命名为CSV文件的文件名。但是,工作表中的日期有一个日期美国化问题。一些网站建议Local:= True可以帮助纠正这个问题,但由于我是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 :(得分:1)
要显示工作表上不同的日期,您可以通过选择一个或多个单元格来更改数字格式,然后按 Ctrl更改单元格格式 + 1 。选择适合您的Date
格式,或选择Custom
根据需要输入M/D/YYYY
或D/M/YYYY
等格式。请参阅:Format a date the way you want
要将日期转换为工作表上的格式化文本,您可以使用TEXT
function。例如(使用单元格A1):
=TEXT(A1, "M/D/YYYY")
要将日期用作VBA 中的格式化字符串,您可以使用FORMAT
function。例如(使用单元格A1):
Format(Range("A1"), "M/D/YYYY")
如果您需要以编程方式更改单元格的格式,可以使用NumberFormat
property:
.NumberFormat = "M/D/YYYY"
如果您的工作表将在多个区域设置中使用,NumberFormatLocal
property可能会更好:
.NumberFormatLocal
答案 1 :(得分:0)
您需要设置Range.NumberFormat
属性以显示日期。
例如,如果您的日期在列中&#34; D&#34;然后像:
wb.Sheets(i).Range("D:D").NumberFormat = "yyyy-mm-dd"
或者如果能够提供所需的结果,您也可以使用Range.NumberFormatLocal
。