2017-08-14 96 views
0

在网上找到了下面的代码,但是当我运行日期的宏时有点奇怪,因为我的日期将从: [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" 

感谢,

+1

我认为最初的excel已经将格式设置为[DD/MM/YYYY]。 CSV不会保存“格式”,它将使用PC的区域设置格式。 – Prisoner

+0

对不起,我想避免它,并保留它作为[DD/MM/YYYY] – chKL

+0

你可以尝试明确地格式化列到你的优先格式 – RealCheeseLord

回答

0

根据您的本地语言设置(控制面板中指定),下面应该工作:

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