Board logo

標題: 如何修正匯入檔案時的正確日期格式 [打印本頁]

作者: enoch    時間: 2013-2-18 17:43     標題: 如何修正匯入檔案時的正確日期格式

請問用Workbooks.Open 開啟檔案時, 何時才要使用  Local:=True
有時使用 Local:=True 時,  日期格式會正確, 有時則剛剛相反

如電腦的日期格式是ddmmyyyy, 如何檢查檔案的日期格式是否相同, 及作出修正

請指教
作者: enoch    時間: 2013-2-18 18:01

更新問題, 電腦日期格式是ddmmmyyyy
如何檢查要開啟的檔案日期格式是否相同
若檔案是mmmddyyyy 時, 如何作出修改
作者: luhpro    時間: 2013-2-19 22:09

本帖最後由 luhpro 於 2013-2-19 22:10 編輯
更新問題, 電腦日期格式是ddmmmyyyy
如何檢查要開啟的檔案日期格式是否相同
若檔案是mmmddyyyy 時, 如何 ...
enoch 發表於 2013-2-18 18:01

觀看 WorkBooks 的 Open 方法中 Local 參數的說明 :

Local     選擇性的 Variant。
True 根據 Microsoft Excel 的語言儲存檔案 (包含控制台設定)。
False (預設值) 則根據 Visual Basic for Applications (VBA)
(通常為美式英語,除非執行 Workbooks.Open 的 VBA 專案是舊版的全球 XL5/95 VBA 專案) 的語言儲存檔案。

可以發現這個參數並不是指定日期或時間要以什麼格式來表示的.
所以想要達成你想要的目的,
應該是要從其他方面來著手.

我查了一下應該是不需要如你所述要做什麼修正,
而是只要於使用時指定 存(或顯示)成 我們想要的格式就可以了.
舉例如下:
  1. Sub ex()
  2.   Dim fs, f, s
  3.   filespec = "C:\CONFIG.SYS" ' 要開啟的檔案名稱
  4.   Set fs = CreateObject("Scripting.FileSystemObject")
  5.   Set f = fs.GetFile(filespec)
  6.   s = UCase(filespec) & vbCrLf & vbCrLf
  7.   s = s & "檔案建立: " & Format(f.DateCreated, "mm/dd/yyyy    hh:mm") & vbCrLf
  8.   s = s & "最後存取: " & Format(f.DateLastAccessed, "yyyy/mm/dd    hh:mm:ss") & vbCrLf
  9.   s = s & "最後變更: " & Format(f.DateLastModified, "hh:mm:ss     m/d/yy")
  10.   MsgBox s, 0, "檔案資訊"
  11. End Sub
複製代碼
以下是 Excel 內的說明,你可以參考看看 :
使用者自訂日期/時間格式範例
以下表格列出以使用者自訂日期/時間格式來顯示 December 7, 1958的範例:

格式           顯示結果
m/d/yy           12/7/58
d-mmm           7-Dec
d-mmmm-yy    7-December-58
d mmmm         7 December
mmmm yy       December 58
hh:mm AM/PM 08:50 PM
h:mm:ss a/p   8:50:35 p
h:mm            20:50
h:mm:ss        20:50:35
m/d/yy h:mm  12/7/58 20:50
作者: enoch    時間: 2013-2-20 10:40

不好意思, 可能詞不達意
想問問題是, 原本的檔案日期內容 : 3JAN2013
但開啟CSV檔案時變了1MAR2013
有辦法解決問題嗎?
作者: GBKEE    時間: 2013-2-23 16:28

回復 4# enoch
原本的檔案日期內容 : 3JAN2013 ,但開啟CSV檔案時變了1MAR2013  
開啟 CSV檔案後執行, 如日期位於A1
  1. Sub EX()
  2. [A1] = DateSerial(Year([A1]), Day([A1]), Month([A1]))
  3. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)