作者grimmq52156 (甘地)
看板Office
标题[算表] Excel VBA Date系列函数只能用西元的问题
时间Tue Nov 17 13:51:26 2015
软体: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://webptt.com/cn.aspx?n=bbs/Office/M.1447739489.A.4AD.html
1F:→ soyoso: 隐忧存在方面觉得还好;另外之所以加上int的原因是? 11/17 14:18
2F:→ soyoso: 取整数?测试不加也可正确带入 11/17 14:20
因为公式要求输入的变数型态是int
所以我就习惯性的加了上去
像您说的不加也行
※ 编辑: grimmq52156 (60.249.8.223), 11/17/2015 14:22:48