|
楼主 |
发表于 2018-11-26 14:23
|
显示全部楼层
本帖最后由 丢丢表格 于 2018-11-27 08:36 编辑
Sub 测试()
' 公式写在 D2单元格
[e2] = ""
本年末 = VBA.CDate(Year(Date) & "-12-31")
[b2] = 本年末
本年初 = VBA.CDate("1-1")
For I = 1 To 6000
时界 = VBA.CDate(Year(Date) & -Month(Range("b2"))) + Day(Range("b2")) - 1
已达 = 本年末 - 时界 + 1 '测试 一
未达 = 365 - 已达
'未达 = 时界 - 本年初 '测试 二
'已达 = 365 - 未达
'未达 = 时界 - 本年初 '测试 三
'已达 = = 本年末 - 时界 + 1
月数a = WorksheetFunction.Max(0, DateDiff("m", Range("b2"), 本年初))
月数b = DateDiff("m", Range("b2"), 本年末)
ak = Application.WorksheetFunction.Lookup(月数a, Range("h3:o4"))
bk = Application.WorksheetFunction.Lookup(月数b, Range("h3:o4"))
ss = Round((未达 * ak + 已达 * bk) / 365, 0)
[c2] = ss
If [d2] <> ss Then [e2] = "公式错误": End
[b2] = [b2] - 1
Next I
[e2] = "正确"
End Sub
请在D2 单元格 写公式
请测试一下 注意: 把电脑日期 调到 2020 年 再试一次
(只要 2018 年 能通过的,就算公式正确)
。
|
|