為什麼這篇VBA 西元轉民國鄉民發文收入到精華區:因為在VBA 西元轉民國這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者grimmq52156 (甘地)看板Office標題[算表] Excel VBA Date系列函...
軟體:Microsoft Office Excel
版本:2010
各位大大午安
小弟目前在寫vba的時候遇到一個問題
就是vba的date系列函數(date、datevalue、dateadd、year、month、day……)
只能吃西元年格式
但現在在Excel工作表裡面日期都是以民國年格式輸入(e/m/d)
當遇到閏年(ex 101/2/29)時
所有date系列函數都會出現錯誤「型態不符合」
因為西元101年沒有2/29
在不去更動Excel工作表的情況下(也就是不另外新增西元年的欄位)
有沒有什麼有效率的方式去處理這個問題呢?
小弟目前想到的解法是在vba端把民國年更改為西元年
假設日期所在儲存格是A1
Dim dateYYYY as Date
Dim dateStr() as String
'將日期拆成e m d存入陣列
dateStr = Split(ActiveSheet.Range("A1").Value, "/")
'將民國年+1911轉變為西元年後存入
dateYYYY = DateSerial(Int(dateStr(0)) + 1911, Int(dateStr(1)), _
Int(dateStr(2)))
目前這個作法好像是可行的
但我不知道這樣會不會有什麼隱憂存在
也不知道是不是有更好的方法
所以在此請教各位大大
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.249.8.223
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1447739489.A.4AD.html
因為公式要求輸入的變數型態是int
所以我就習慣性的加了上去
像您說的不加也行
※ 編輯: grimmq52156 (60.249.8.223), 11/17/2015 14:22:48