/ / Функція не працює, тому що я використовую дати? - excel, vba, excel-vba

Функція не працює, тому що я використовую дати? - excel, vba, excel-vba

Я намагаюся написати функцію, від якої залежитьдат, але я не можу отримати його на роботу. 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

Відповіді:

0 для відповіді № 1

Неправильний тип даних поставляється звідси:

MaxDatum = ">=" & Datum

MaxDatum є подвійним, і ви даєте >= до цього Його неможливо перетворити на a Double. Спробуйте навколо.

Найшвидшим рішенням було б написати так:

Dim MinDatum, MaxDatum

замість

Dim MinDatum, MaxDatum As Double

Таким чином MaxDatum буде легко перетворено на те, що вам потрібно, тому що це буде також варіант, а також MinDatum.