VBA वीकडे - VBA में स्टेप गाइड टू वीकडे फंक्शन

एक्सेल VBA सप्ताहांत समारोह

वीबीए में सप्ताह का दिन एक तिथि और समय फ़ंक्शन है, जिसका उपयोग किसी दिए गए दिनांक के कार्यदिवस की पहचान करने के लिए किया जाता है, क्योंकि यह एक इनपुट के रूप में प्रदान करता है, यह फ़ंक्शन 1 से 7 सीमा तक पूर्णांक मान लौटाता है, इस फ़ंक्शन के लिए प्रदान किया गया एक वैकल्पिक तर्क है सप्ताह का पहला दिन लेकिन अगर हम सप्ताह का पहला दिन प्रदान नहीं करते हैं, तो फ़ंक्शन रविवार को सप्ताह के पहले दिन को डिफ़ॉल्ट रूप से मानता है।

क्या हम किसी विशेष तिथि को देखकर कार्यदिवस की संख्या बता सकते हैं? हां, हम सप्ताह के शुरुआती दिन के आधार पर उस सप्ताह को दिन की संख्या बता सकते हैं। नियमित वर्कशीट कार्यों में, हमारे पास एक विशेष तिथि के लिए सप्ताह की संख्या बताने के लिए एक्सेल में WEEKDAY नामक एक फ़ंक्शन है। VBA में, हमारे पास समान कार्य खोजने के लिए एक ही फ़ंक्शन है।

वीकडे फंक्शन क्या करता है?

कार्यदिवस फ़ंक्शन सप्ताह में प्रदान की गई दिन की संख्या लौटाता है। उदाहरण के लिए, यदि आप दिनांक 01 है सेंट 07 अप्रैल वें अप्रैल और आप तारीख 05 के दिन में जानना चाहते हैं, तो वें अप्रैल अगर सप्ताह के शुरू दिन सोमवार से है, यह 5 वें दिन।

इसे खोजने के लिए, हमारे पास एक वर्कशीट के साथ-साथ VBA में "वीकडे" के समान कार्य है। नीचे फ़ंक्शन का सिंटैक्स है।

दिनांक: किस दिन के लिए हम कार्यदिवस खोजने की कोशिश कर रहे हैं। यह सही प्रारूप के साथ एक उचित तिथि होनी चाहिए।

(सप्ताह का पहला दिन): प्रदान की गई तारीख के कार्यदिवस को निर्धारित करने के लिए , हमें यह उल्लेख करना होगा कि सप्ताह का पहला दिन क्या है। डिफ़ॉल्ट रूप से, VBA "सोमवार" को सप्ताह का शुरुआती दिन मानता है। इसके अलावा, हम नीचे के दिनों की भी आपूर्ति कर सकते हैं।

उदाहरण

उदाहरण 1

कार्यवाही शुरू करने के लिए, मुझे पहले एक साधारण उदाहरण के साथ शुरुआत करनी चाहिए। अब हम “10-April-2019” तिथि के लिए कार्यदिवस खोजने की कोशिश करेंगे।

चरण 1: चर को स्ट्रिंग के रूप में परिभाषित करें

कोड:

सब वीकडे_एक्सप्लिमेंट 1 () डिम के ऐज़ स्ट्रिंग एंड सब
चरण 2: चर के लिए मान निर्दिष्ट करें

WEEKDAY फ़ंक्शन लागू करके चर "k" के लिए मान निर्दिष्ट करें।

कोड:

सब वीकडे_एक्सप्लिमेंट 1 () डिम के ऐज़ स्ट्रिंग के = वीकडे (एंड सब
चरण 3: फ़ंक्शन में दिनांक दर्ज करें

जिस तारीख को हम यहां पर परीक्षण कर रहे हैं, वह "10-अप्रैल-2019" है, इसलिए तारीख को "10-अप्रैल-2019" के रूप में पास करें।

कोड:

सब वीकडे_एक्सप्लिमेंट 1 () डिम के ऐज़ स्ट्रिंग k = वीकडे ("10-Apr-2019" एंड सब
चरण 4: MsgBox में चर का मान दिखाएँ

डिफ़ॉल्ट रूप से, यह सप्ताह के पहले दिन को "सोमवार" के रूप में लेता है, इसलिए इस भाग को अनदेखा करें। ब्रैकेट बंद करें। अगली पंक्ति VBA संदेश बॉक्स में चर "k" का मान दिखाती है।

कोड:

सब वीकडे_एक्सप्लिमेंट 1 () डिम के ऐज़ स्ट्रिंग के = वीकडे ("१०-अप्रैल -२०१ ९") मिसगॉक्स - एंड सब

ठीक है, हम कर रहे हैं।

यदि हम कोड चलाते हैं, तो हमें "4" के रूप में परिणाम मिलेगा क्योंकि रविवार से शुरू होने पर, प्रदान की गई तारीख (10-अप्रैल-2019) सप्ताह के 4 वें दिन आती है ।

नोट: मेरे सिस्टम का सप्ताह का शुरुआती दिन "रविवार" है।

इसी तरह, यदि आप सप्ताह के शुरुआती दिन बदलते हैं, तो यह अलग-अलग रहता है। नीचे उसी के लिए एक उदाहरण पंक्ति है।

कोड:

k = वीकडे ("10-Apr-2019", vbMonday) 'यह रिटर्न 3 k = वीकडे ("10-Apr-2019", vbTuesday)' यह रिटर्न 2 k = वीकडे ("10-Apr-2019", vbWednesday) 'यह रिटर्न 1 k = वीकडे ("10-Apr-2019", vbThursday)' यह रिटर्न 7 k = वीकडे ("10-Apr-2019", vbFriday) 'यह रिटर्न 6 k = वीकडे ("10-Apr-2019) ", vbSaturday) 'यह रिटर्न 5 k = वीकडे (" 10-Apr-2019 ", vbSunday)' यह रिटर्न 4

उदाहरण # 2 - आगमन कि तारीख सप्ताहांत पर है या नहीं

मान लें कि आपके पास नीचे की तरह एक तारीख है, और आप अगले सप्ताहांत की तारीख ढूंढना चाहते हैं, तो हम परिणामों पर पहुंचने के लिए WEEKDAY फ़ंक्शन का उपयोग कर सकते हैं।

We need to use WEEKDAY with IF condition and loops to arrive at the result. I have written the code for you to go line by line to get the logic.

Code:

Sub Weekend_Dates() Dim k As Integer For k = 2 To 9 If Weekday(Cells(k, 1).Value, vbMonday) = 1 Then Cells(k, 2).Value = Cells(k, 1) + 5 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 2 Then Cells(k, 2).Value = Cells(k, 1) + 4 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 3 Then Cells(k, 2).Value = Cells(k, 1) + 3 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 4 Then Cells(k, 2).Value = Cells(k, 1) + 2 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 5 Then Cells(k, 2).Value = Cells(k, 1) + 1 Else Cells(k, 2).Value = "This is actually the weekend Date" End If Next k End Sub

This will arrive at the results below.

कोशिकाओं बी 6 और बी 7 को देखें। हमें "यह वास्तव में सप्ताहांत की तारीख" के रूप में परिणाम मिला है क्योंकि तारीखें "04-मई-2019" और "06-अप्रैल-2019" वास्तव में सप्ताहांत की तारीखें हैं, इसलिए सप्ताहांत की तारीखों के लिए सप्ताहांत की तारीख दिखाने की कोई आवश्यकता नहीं है। डिफ़ॉल्ट रूप से, हमें इसका परिणाम मिलता है।

दिलचस्प लेख...