2017-08-07 22 views
1

日付に依存する関数を作成しようとしていますが、動作させることができません。 Excelは、この数式で使用されている値のデータ型が間違っていることを伝え続けます。だから、日付でなければなりません。なぜなら、日付の値の加算を除いて、まったく同じ別の関数があるからです。日付を使用しているため、機能が動作しません。

誰かがExcelセルC10に日付を書き込んだ後、依存する(同じブック内の別のシート上の)テーブルから特定の数値(予測インフレ率、列P)を要約する関数を使用していません開始日(列I)と終了日(列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

まず、「Dim MinDatum、MaxDatum As Double」を定義すると、「MaxDatum As Double」と「MinDatum as Variant」を意味し、「Dim MinDatum As Double」、「MaxDatum As Double」である必要があります。次に、 'MinDatum = CDbl(Datum)'のように、日付をDoubleに変換する必要があります。最後に、 'SumIfs'関数でチェックすると、' Worksheets( "tariff")Range( "I:I")、 "> ="&MinDatum'を使用します。 –

+0

あなたの答えをありがとう、それは私の問題を解決! – AnnieFrannie

答えて

0

誤ったデータ型が、ここから来ている:

MaxDatum = ">=" & Datum 

MaxDatumはダブルで、あなたはそれに>=を与えています。 Doubleに変換することはできません。方法を試してみてください。

最速の解決策は、次のように書くことになります:

Dim MinDatum, MaxDatum

の代わりに、このようにMaxDatum

Dim MinDatum, MaxDatum As Double

やすいので、あなたが必要なものに変換されますそれは変種だけでなく、 MinDatumです。

関連する問題