2017-08-14 73 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