[爆卦]VBA 西元轉民國是什麼?優點缺點精華區懶人包

為什麼這篇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
soyoso: 隱憂存在方面覺得還好;另外之所以加上int的原因是? 11/17 14:18
soyoso: 取整數?測試不加也可正確帶入 11/17 14:20

因為公式要求輸入的變數型態是int

所以我就習慣性的加了上去

像您說的不加也行
※ 編輯: grimmq52156 (60.249.8.223), 11/17/2015 14:22:48

你可能也想看看

搜尋相關網站