VBA का उपयोग करके Excel में डेटा को मैनिप्युलेट कैसे करें
बड़े डेटा सेट को प्रबंधित करने के लिए मैक्रोज़ प्रक्रिया VBA कोड है जो अन्यथा संशोधित होने में बहुत समय लेगी। उदाहरण के लिए, VBA के साथ आप अपने निर्धारित मानदंडों को पूरा करने वाले कुछ क्षेत्रों को स्वचालित रूप से प्रारूपित करने के लिए एक मैक्रो बना सकते हैं।
नीचे Excel में उपयोग की गई VBA स्क्रिप्ट का एक उदाहरण है:
उप कॉन्फिगरलॉजिक ()
मंद qstEntries
मंद dqstEntries
मंद qstCnt, dqstCnt
qstEntries = Range ("QualifiedEntry")। गिनती
qst = qstEntries - WorksheetFunction.CountIf (श्रेणी ("अर्हताप्राप्त" "), ")
ReDim QualifiedEntryText (qst)
'MsgBox (qst)
dqstEntries = रेंज ("DisQualifiedEntry")। गिनती
dqst = dqstEntries - WorksheetFunction.CountIf (रेंज ("DisQualifiedEntry"), "")
रिडिमल डिसक्वालीफाईडइंट्रीटेक्स्ट (dqst)
'MsgBox (dqst)
QstCnt के लिए = 1 qst के लिए
QualifiedEntryText (qstCnt) = ThisWorkbook.Worksheets ("Qualifiers")। रेंज ("J" और 8 + qstCnt) .value
'MsgBox (QualifiedEntryText (qstCnt))
लॉगिंग ("कॉन्फ़िगर की गई योग्य प्रविष्टि प्रविष्टि #" और qstCnt और "के रूप में {" और QualifiedEntryText (qstCnt) और "}")
आगामी
DqstCnt के लिए = 1 dqst के लिए
DisqualifiedEntryText (dqstCnt) = ThisWorkbook.Worksheets ("संशोधक")। रेंज ("M" & 8 + dqstCnt) .value
'MsgBox (DisqualifiedEntryText (dqstCnt))
लॉगिंग ("कॉन्फ़िगर की गई अनुशासित प्रविष्टि प्रविष्टि #" और qstCnt & "as {" & DisqualifiedEntryText (dqstCnt) और "}")
आगामी
शामिल करेंइंट्री = ThisWorkbook.Worksheets ("क्वालिफायर")। रेंज ("शामिल करें") मान।
'MsgBox (शामिल करें)
लॉगिंग ("खोज में शामिल किया गया था -" और शामिल करें)
अंत उप
स्प्रेडशीट में प्रविष्टियों का विश्लेषण और हेरफेर कैसे करें
डेटा विश्लेषण के लिए VBA का उपयोग करने के लिए, आपको डेवलपर टूल के लिए Excel में सेटिंग्स की जांच करनी होगी। इसे खोजने के लिए, एक्सेल रिबन का पता लगाएं और डेवलपर टैब को खोजें। यदि यह प्रदर्शित नहीं होता है, तो आपको इसे एक्सेल सेटिंग्स मेनू में सक्रिय करना होगा।अगला, एक नई वर्कशीट बनाएं और इसे "क्वालिफायर" नाम दें। हम इस शीट का उपयोग उन सभी चीजों की जांच करने के लिए करेंगे जो चयन योग्य हैं।
अगला, कोड के अनुसार क्वालीफायर को शीट पर सेट करें। इसे मैन्युअल रूप से दर्ज किया जाना चाहिए; कट और पेस्ट काम नहीं करेगा।
ThisWorkbook.Worksheets ("क्वालिफायर")। रेंज ("J" और 8 + qstCnt) प्रतिमा।
कैसे सीमा का पता लगाने और एक सरणी का निर्माण करने के लिए
ऊपर फ़ंक्शन में रेंज सेल J9 है। रेंज फ़ंक्शन एक 8 नोट करता है; हालाँकि, वास्तविक सीमा 9 है क्योंकि:QstCnt के लिए = 1 qst के लिए
उपरोक्त कथन 1 पर शुरू होता है। 0. इसलिए, सूची 9 से शुरू होती है। इस मामले में, नोट (qstCnt = 1)।
क्वालिफायर वर्कशीट पर प्रविष्टियों में से एक सरणी का निर्माण करने के लिए, कोशिकाओं को यादृच्छिक शब्दों को J9-J13 में रखें। पंक्तियों के पूरा हो जाने के बाद, हम Excel में डेटा ढूँढने और हेरफेर करने के साथ आगे बढ़ सकते हैं।
निजी सब काउंटशीट ()मंद चादर
वर्क्स के रूप में डिम WS
शीतांक = ०
लॉगिंग ("***** शुरू स्क्रब *********")
ThisWorkbook.Worksheets में प्रत्येक WS के लिए
sheetcount = शीतांक + १
अगर WS.Name = "चयनित" तब
"लॉगिंग" नाम की शीट में दिनांक और समय लॉग करना होगा
ActionCnt = ActionCnt + 1
लॉगिंग ("कॉलिंग शीट:" और WS.Name)
स्क्रबशीट (शीटकाउंट)
अन्य
ActionCnt = ActionCnt + 1
लॉगिंग ("शीट पर छोड़ दिया गया:" और WS.Name)
अगर अंत
अगला WS
'MsgBox ("समाप्त")
ActionCnt = ActionCnt + 1
लॉगिंग ("**** स्क्रब डोन!")
Application.ScreenUpdating = True
अंत उप
एक कार्य टैब काउंटर का एक उदाहरण है।
मंद चादर
वर्क्स के रूप में डिम WS
शीतांक = ०
लॉगिंग ("***** शुरू स्क्रब *********")
ThisWorkbook.Worksheets में प्रत्येक WS के लिए
sheetcount = शीतांक + १
शीट की गणना को शुरू करने के बाद, काउंटर को पुनरारंभ करने के लिए इसे 0 पर सेट करें।
लॉगिंग () एक और सबरूटीन है जो चयनों के ऑडिट के लिए सभी कार्यों का ट्रैक रखता है।
अगला लूप गिनती के लिए सक्रिय कार्यपुस्तिका सेट करता है। WS, इनिशियलाइज़्ड और ThisWorkbook है। वर्कशीट पुस्तक में सक्रिय टैब है। चूंकि हमने कार्यपुस्तिका का नाम नहीं दिया है, इसलिए यह मॉड्यूल किसी भी सक्रिय कार्यपुस्तिका पर चलेगा। यदि आप कई वर्कबुक पर काम कर रहे हैं और गलत एक सक्रिय है, तो यह उस पर चलने का प्रयास करेगा। त्रुटियों से बचने के लिए, अपनी विशिष्ट कार्यपुस्तिका को नाम देने के लिए सावधानी बरतें या केवल एक समय में एक पर काम करें।
हर बार लूप में आग लगने के बाद, यह टैब की संख्या पर नज़र रखने के लिए शीट की गिनती में एक चर जोड़ता है। फिर हम यहां जाते हैं:
अगर WS.Name = "चयनित" तब"लॉगिंग" नाम की शीट में दिनांक और समय लॉग करना होगा
ActionCnt = ActionCnt + 1
लॉगिंग ("कॉलिंग शीट:" और WS.Name)
स्क्रबशीट (शीटकाउंट)
अन्य
ActionCnt = ActionCnt + 1
लॉगिंग ("शीट पर छोड़ दिया गया:" और WS.Name)
अगर अंत
यहां, हम चयनित टैब की तलाश करते हैं।
यदि चर WS चयनित के बराबर है, तो हम इसे लॉग करते हैं और सबरूटीन स्क्रब शीट को आग देते हैं। यदि चर WS चयनित के बराबर नहीं है, तो यह लॉग किया गया है कि शीट को छोड़ दिया गया था और कार्रवाई को गिना गया है। उपरोक्त कोड इस बात का एक उदाहरण है कि किसी विशेष टैब की संख्या की गणना कैसे की जाए।
निम्नलिखित listng विभिन्न तरीकों में से एक है जो डेटा में हेरफेर करने के लिए इस्तेमाल किया जा सकता है!
मज़े करो!
किसी कार्यपुस्तिका में पत्रक की संख्या की गणना कैसे करें
मंद ताबThisWorkbook.Worksheets में प्रत्येक टैब के लिए
'यहाँ कुछ दिनचर्या
आगामी
वर्कशीट पर अंतिम पंक्ति, कॉलम या सेल का पता लगाएं
मंद सेलकाउंटcellcount = प्रकोष्ठ (ThisWorkbook.Worksheets ("वर्कशीट")। Rows.C., 1)। और (xlUp) .Row
उन्नत मानदंड का उपयोग करके फ़िल्टर करें
श्रेणी ("A2: Z99")। क्रमबद्ध कुंजी 1: = श्रेणी ("A5"), क्रम 1: = xlAscending, Header: = xlNo
एक कॉलम में ऑटो-फिट प्रॉपर्टी लागू करें
कॉलम। ( "एक: एक") EntireColumn.AutoFit
किसी अन्य वर्कशीट से मान प्राप्त करना
मंद न्यूवल्यूnewvalue = ThisWorkbook.Worksheets ("वर्कशीट")। रेंज ("एफ 1")। मान
एक वर्कशीट में एक कॉलम सम्मिलित करना
डिम रो, कॉलमकक्ष (पंक्ति, स्तंभ) .EntireColumn.Select
Selection.Insert
एक वर्कशीट में कई कॉलम डालें
मंद सम्मिलित करेंडिम रो, कॉलम
सम्मिलित के लिए = 1 से एन
ThisWorkbook.Worksheets ( "वर्कशीट")। का चयन करें
कक्ष (पंक्ति, स्तंभ) .EntireColumn.Select
Selection.Insert
आगामी
एक विशेष पत्रक के लिए एक नामांकित सीमा जोड़ना
ThisWorkbook.Worksheets ("वर्कशीट")। नाम .dd नाम: = "स्थिति", RefersToR1C1: = "= वर्कशीट! C2"
एक वर्कशीट में पूरी पंक्ति डालें
डिम रो, कॉलमकक्ष (पंक्ति, स्तंभ) .EntireRow.Select
Selection.Insert
चिपकाने के लिए एक संपूर्ण पंक्ति की प्रतिलिपि बनाएँ
ActiveSheet.Range ( "A1")। EntireRow.SelectSelection.Copy
संपूर्ण पंक्ति हटाएं
ActiveSheet.Range ( "A1")। EntireRow.SelectSelection.Delete
विशेष शीट का चयन करें
ThisWorkbook.Worksheets ( "वर्कशीट")। का चयन करें
एक रेंज के मूल्यों की तुलना करें
मंद पहलेमंद तर्कशील
Logictest = "कुछ शब्द या मूल्य"
यदि (रेंज (पहले)) .value = Logictest) तो
'यहाँ कुछ दिनचर्या
अगर अंत
चित्र: © Microsoft