函数无效,因为我使用日期?

时间:2017-08-07 08:55:25

标签: excel vba excel-vba

我正在尝试编写一个取决于日期的函数,但我无法让它工作。 Excel一直告诉我,此公式中使用的值具有错误的数据类型。因此它必须是日期,因为除了添加日期值之外,我还有另一个完全相同的函数。

有人在Excel单元格C10中写了一个日期,然后我不想从表格(在同一工作簿中的另一张表格中)中总结某些数字(预测的通货膨胀率,P列)的功能,它依赖于开始日期(第一列)和结束日期(第J列)。

我已经检查过Excel将单元格C10解释为日期,它确实是序列号。

但我不明白为什么这是一个问题,因为我用它来与其他日期(序列号)进行比较?

Public Function FetchFactorInflation(Product As String, ArgName As String) As Double

Dim Datum As Date
Datum = DateValue(Worksheets("InputTariff").Range("C10").Value)

Dim MinDatum, MaxDatum As Double
MinDatum = "<=" & Datum
MaxDatum = ">=" & Datum

FetchFactorInflation = Application.SumIfs(Worksheets("tariff").Range("P:P"), _
                        Worksheets("tariff").Range("I:I"), MinDatum, _
                        Worksheets("tariff").Range("J:J"), MaxDatum, _
                        Worksheets("tariff").Range("K:K"), Product, _
                        Worksheets("tariff").Range("L:L"), ArgName)

End Function

1 个答案:

答案 0 :(得分:0)

错误的数据类型来自:

MaxDatum = ">=" & Datum

MaxDatum是双倍的,你给它>=。它无法转换为Double。尝试一下。

最快的解决方案是这样写:

Dim MinDatum, MaxDatum

而不是

Dim MinDatum, MaxDatum As Double

因此,MaxDatum很容易转换为您需要的内容,因为它与MinDatum一样是变体。