看板 Office 關於我們 聯絡資訊
軟體: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