VBA导出并保存到CSV问题
问题描述:
在网上找到了下面的代码,但是当我运行日期的宏时有点奇怪,因为我的日期将从: [DD/MM/YYYY]改为[MM/DD/YYYY ]VBA导出并保存到CSV问题
例如: 31/07/2017至07/31/2017。
任何人都可以协助,我想保留它是[DD/MM/YYYY]。
参考下:
Dim strName As String
Dim filepath As String
Application.ScreenUpdating = False
strName = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & " " & ActiveSheet.Name & ".csv"
ActiveSheet.Copy 'copy the sheet as a new workbook
ActiveWorkbook.SaveAs Filename:=strName, FileFormat:=xlCSV
ActiveWorkbook.Close SaveChanges:=False
Application.ScreenUpdating = True
MsgBox "File has been Created and Saved as: " & vbCr & strName, , "Copy & Save Report"
感谢,
答
根据您的本地语言设置(控制面板中指定),下面应该工作:
ActiveWorkbook.SaveAs Filename:=strName, FileFormat:=xlCSV, Local:=True
这应该理想地通过指定SaveAs
方法的TextCodepage
参数使用。 但是,根据MSDN reference,该参数在Excel的所有语言中都被忽略。
先前question on SO addresses this,和建议,而不是使用FileFormat:=xlUnicodeText
,然后扩展设置为.csv
,即:
ActiveWorkbook.SaveAs Filename:=strName & ".csv", FileFormat:=xlUnicodeText
然而,这似乎并没有对我而言测试您的方案时工作。
+0
太棒了。本地:=真实的作品。 谢谢 – chKL
我认为最初的excel已经将格式设置为[DD/MM/YYYY]。 CSV不会保存“格式”,它将使用PC的区域设置格式。 – Prisoner
对不起,我想避免它,并保留它作为[DD/MM/YYYY] – chKL
你可以尝试明确地格式化列到你的优先格式 – RealCheeseLord