[算表] Excel VBA Date系列函數只能用西元的問題

看板Office作者 (甘地)時間10年前 (2015/11/17 13:51), 10年前編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
軟體: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

11/17 14:18, , 1F
隱憂存在方面覺得還好;另外之所以加上int的原因是?
11/17 14:18, 1F

11/17 14:20, , 2F
取整數?測試不加也可正確帶入
11/17 14:20, 2F
因為公式要求輸入的變數型態是int 所以我就習慣性的加了上去 像您說的不加也行 ※ 編輯: grimmq52156 (60.249.8.223), 11/17/2015 14:22:48
文章代碼(AID): #1MIi1XIj (Office)
文章代碼(AID): #1MIi1XIj (Office)