/ / Funkcja nie działa, ponieważ używam dat? - excel, vba, excel-vba

Funkcja nie działa, ponieważ używam dat? - excel, vba, excel-vba

Próbuję napisać funkcję, która zależy oddaty, ale nie mogę go uruchomić. Program Excel mówi mi, że wartość używana w tej formule ma niewłaściwy typ danych. Tak więc musi to być data, ponieważ mam inną funkcję, która jest dokładnie taka sama, z wyjątkiem dodania wartości daty.

Ktoś pisze datę w komórce Excela C10 iwtedy nie mam funkcji podsumowania pewnych liczb (przewidywanych stóp inflacji, kolumny P) z tabeli (na innym arkuszu w tym samym skoroszycie), w której zależy od dat rozpoczęcia (kolumna I) i dat końcowych (kolumna J ).

Sprawdziłem, że program Excel interpretuje komórkę C10 jako datę, ale zawiera numer seryjny.

Ale nie rozumiem, dlaczego to jest problem, ponieważ używam go do porównania z innymi datami (numery seryjne)?

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

Odpowiedzi:

0 dla odpowiedzi № 1

Zły typ danych pochodzi stąd:

MaxDatum = ">=" & Datum

MaxDatum jest podwójne i dajesz >= do tego. Nie można go przekonwertować na Double. Spróbuj obejść.

Najszybszym rozwiązaniem byłoby napisanie w ten sposób:

Dim MinDatum, MaxDatum

zamiast

Dim MinDatum, MaxDatum As Double

A zatem MaxDatum byłby łatwo przekonwertowany na to, czego potrzebujesz, ponieważ byłby to zarówno wariant, jak i MinDatum.