/ / Funktion funktioniert nicht, weil ich Termine verwende? - Excel, vba, excel-vba

Funktion funktioniert nicht, weil ich Daten verwende? - Excel, VBA, Excel-VBA

Ich versuche, eine Funktion zu schreiben, die davon abhängtTermine, aber ich kann es nicht zum Laufen bringen. Excel sagt immer wieder, dass ein Wert, der in dieser Formel verwendet wird, den falschen Datentyp hat. Es muss also das Datum sein, denn ich habe eine andere Funktion, die bis auf das Hinzufügen eines Datumswertes genau dieselbe ist.

Jemand schreibt ein Datum in die Excel-Zelle C10 unddann möchte ich die Funktion verwenden, um bestimmte Zahlen (vorhergesagte Inflationsraten, Spalte P) aus einer Tabelle (auf einem anderen Blatt in derselben Arbeitsmappe) zusammenzufassen, in der sie von Anfangsdatum (Spalte I) und Enddatum (Spalte J) abhängt ).

Ich habe überprüft, dass Excel Zelle C10 als Datum interpretiert, dies jedoch mit einer Seriennummer.

Aber ich verstehe nicht, warum dies ein Problem ist, da ich es mit anderen Daten (Seriennummern) vergleiche.

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

Antworten:

0 für die Antwort № 1

Der falsche Datentyp kommt von hier:

MaxDatum = ">=" & Datum

MaxDatum ist ein Doppelgänger, und Sie geben >= dazu Es kann nicht in eine konvertiert werden Double. Versuchen Sie es einmal.

Die schnellste Lösung wäre, so zu schreiben:

Dim MinDatum, MaxDatum

Anstatt von

Dim MinDatum, MaxDatum As Double

So MaxDatum wäre leicht zu konvertieren, was Sie brauchen, weil es sowohl Variante als auch wäre MinDatum.