/ / समारोह काम नहीं कर रहा है क्योंकि मैं तिथियों का उपयोग करता हूं? - एक्सेल, वीबीए, एक्सेल-वीबीए

फ़ंक्शन काम नहीं कर रहा है क्योंकि मैं तिथियों का उपयोग करता हूं? - एक्सेल, वीबीए, एक्सेल-वीबीए

मैं एक समारोह लिखने की कोशिश कर रहा हूं जो इस पर निर्भर करता हैतिथियां, लेकिन मैं इसे काम नहीं कर सकता। एक्सेल मुझे बताता रहता है कि इस सूत्र में उपयोग किए जाने वाले मान में गलत डेटा प्रकार है। तो यह तारीख होनी चाहिए, क्योंकि मेरे पास एक और कार्य है जो एक तिथि के जोड़ को छोड़कर बिल्कुल वही है।

कोई एक्सेल-सेल सी 10 में एक तारीख लिखता है औरतो मैं एक तालिका (एक ही कार्यपुस्तिका में एक और शीट पर) से कुछ संख्याओं (भविष्यवाणी मुद्रास्फीति दर, कॉलम पी) को संक्षेप में करने के लिए समारोह नहीं करूँगा जिसमें यह प्रारंभ तिथियों (कॉलम I) और समाप्ति तिथियों (कॉलम जे) पर निर्भर करता है )।

मैंने जांच की है कि एक्सेल सेल सी 10 को एक तारीख के रूप में व्याख्या करता है, लेकिन यह एक सीरियल नंबर के साथ करता है।

लेकिन मुझे नहीं लगता कि यह एक समस्या क्यों है क्योंकि मैं इसे अन्य तिथियों (सीरियल नंबर) के साथ तुलना करने के लिए उपयोग करता हूं?

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

मैक्सडैटम एक डबल है, और आप दे रहे हैं >= इसके लिए इसे ए में परिवर्तित नहीं किया जा सकता है Double। चारों ओर एक रास्ता कोशिश करो।

सबसे तेज़ समाधान इस तरह लिखना होगा:

Dim MinDatum, MaxDatum

के बजाय

Dim MinDatum, MaxDatum As Double

इस प्रकार MaxDatum आपको जो चाहिए उसे आसानी से परिवर्तित कर दिया जाएगा, क्योंकि यह संस्करण भी होगा MinDatum.