यह ट्यूटोरियल प्रदर्शित करेगा कि VBA में टेबल्स और लिस्टऑब्जेक्ट्स के साथ कैसे काम किया जाए।
वीबीए टेबल्स और लिस्टऑब्जेक्ट्स
टेबल्स एक्सेल की सबसे उपयोगी और शक्तिशाली विशेषताओं में से एक हैं, इस ट्यूटोरियल में, हम टेबल बनाने के लिए वीबीए का उपयोग करने, टेबल में एक साधारण सॉर्ट जोड़ने, टेबल को फ़िल्टर करने और अन्य टेबल से संबंधित कार्यों को करने के तरीके के बारे में जानेंगे।
वीबीए के साथ एक टेबल बनाएं
ListObjects.Add Method उस कार्यपत्रक में किसी श्रेणी के आधार पर किसी कार्यपत्रक में तालिका जोड़ सकता है। हमारे पास शीट1 नामक वर्कशीट पर ($A$1:$B$8) में दिखाया गया रेंज है।
निम्न कोड डिफ़ॉल्ट तालिका शैली का उपयोग करके श्रेणी ($A$1:$B$8) के आधार पर, आपकी कार्यपत्रक में तालिका1 नामक एक तालिका जोड़ देगा:
123456 | उप CreateTableInExcel ()ActiveWorkbook.Sheets("Sheet1").ListObjects.Add(xlSrcRange, Range("$A$1:$B$8"), , xlYes).Name = _"तालिका एक"अंत उप |
परिणाम है:
VBA के साथ तालिका के अंत में एक कॉलम सम्मिलित करना
आप अपनी तालिका के अंत में एक कॉलम जोड़ने के लिए ListColumns.Add विधि का उपयोग कर सकते हैं। हमारे पास नीचे दी गई तालिका 1 नामक हमारी तालिका है।
आप निम्न कोड का उपयोग करके अपनी तालिका में एक कॉलम जोड़ सकते हैं, जो हमेशा तालिका के अंत में एक कॉलम जोड़ देगा:
12345 | उप AddColumnToTheEndOfTheTable ()ActiveWorkbook.Sheets("Sheet1").ListObjects("Table1").ListColumns.Addअंत उप |
परिणाम है:
VBA के साथ तालिका के निचले भाग में एक पंक्ति सम्मिलित करना
आप अपनी तालिका के निचले भाग में एक पंक्ति जोड़ने के लिए ListRows.Add विधि का उपयोग कर सकते हैं। हमारे पास नीचे दी गई तालिका 1 नामक हमारी तालिका है।
निम्न कोड हमेशा आपकी तालिका के नीचे एक पंक्ति जोड़ देगा।
12345 | उप AddRowToTheBottomOfTheTable ()ActiveSheet.ListObjects("Table1").ListRows.Addअंत उप |
परिणाम है:
VBA के साथ एक सरल सॉर्ट जोड़ना
आप वीबीए के साथ एक टेबल सॉर्ट कर सकते हैं। हमारे पास नीचे दी गई तालिका 1 नामक हमारी तालिका है और हम बिक्री कॉलम को निम्नतम से उच्चतम तक क्रमबद्ध करने के लिए वीबीए का उपयोग कर सकते हैं।
निम्न कोड बिक्री कॉलम को आरोही क्रम में क्रमबद्ध करेगा।
12345678910111213141516171819 | उप SimpleSortOnTheTable ()रेंज ("तालिका 1 [[# शीर्षलेख], [बिक्री]]")। चुनेंActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort.SortFields.ClearActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort.SortFields.Add _कुंजी: = रेंज ("तालिका 1 [[# सभी], [बिक्री]]"), सॉर्टऑन: = xlSortOnValues, ऑर्डर: = _xlआरोही, डेटाविकल्प:=xlSortNormalActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort . के साथहैडर = xlहाँ.मैचकेस = झूठाओरिएंटेशन = xlTopToBottom.SortMethod = xlPinYin।लागू करनाके साथ समाप्त करनाअंत उप |
परिणाम है:
VBA के साथ तालिका फ़िल्टर करें
आप VBA का उपयोग करके किसी Excel तालिका को फ़िल्टर भी कर सकते हैं। हमारे पास तालिका 1 नामक हमारी तालिका है और हम तालिका को फ़िल्टर करना चाहेंगे ताकि केवल 1500 से अधिक की बिक्री दिखाई दे।
हम ऑटोफिल्टर विधि का उपयोग कर सकते हैं, जिसमें पांच वैकल्पिक पैरामीटर हैं। चूंकि हम बिक्री कॉलम को फ़िल्टर करना चाहते हैं जो कि दूसरा कॉलम है, हम फ़ील्ड को 2 पर सेट करते हैं, और हम xlAnd ऑपरेटर पैरामीटर का उपयोग करते हैं, जिसका उपयोग तिथियों और संख्याओं के लिए किया जाता है।
123456 | सब सिंपलफिल्टर ()ActiveWorkbook.Sheets("Sheet1").ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _">1500", ऑपरेटर:=xlAndअंत उप |
परिणाम है:
VBA में ShowAllData विधि से फ़िल्टर साफ़ करें
फ़िल्टर को साफ़ करने के लिए आप वर्कशीट क्लास के ShowAllData मेथड को एक्सेस कर सकते हैं। यदि यह किसी तालिका का फ़िल्टर है जिसे आप साफ़ करना चाहते हैं, तो आपको सबसे पहले तालिका में एक सेल का चयन करना होगा, जिसे आप VBA में कर सकते हैं।
यदि वर्कशीट में कोई फ़िल्टर लागू किया गया है, तो यह जांचने के लिए यदि कोई सशर्त तर्क का उपयोग नहीं करता है, तो ShowAllData विधि एक त्रुटि उत्पन्न करेगी। निम्नलिखित कोड आपको दिखाता है कि यह कैसे करें:
123456789 | उप समाशोधन TheFilter ()रेंज ("तालिका 1 [[# शीर्षलेख], [बिक्री]]")। चुनेंअगर ActiveWorkbook.Worksheets("Sheet1").FilterMode = True तबActiveSheet.ShowAllDataअगर अंतअंत उप |
Excel तालिका से सभी फ़िल्टर साफ़ करें
आप पहले तालिका में एक सेल का चयन किए बिना ListObject वर्ग की ShowAllData विधि तक पहुँच सकते हैं। निम्नलिखित कोड आपको दिखाता है कि यह कैसे करें:
123 | उप ClearAllTableFilters ()ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").AutoFilter.ShowAllDataअंत उप |
वीबीए के साथ एक पंक्ति हटाना
आप ListRows.Delete विधि का उपयोग करके अपनी तालिका के डेटाबेस में एक पंक्ति को हटा सकते हैं। आपको पंक्ति संख्या का उपयोग करके यह निर्दिष्ट करना होगा कि कौन सी पंक्ति है। हमारे पास निम्न तालिका है जिसे तालिका 1 कहा जाता है।
मान लीजिए कि आप अपनी तालिका के डेटाबेस में दूसरी पंक्ति को हटाना चाहते हैं, निम्नलिखित कोड आपको ऐसा करने की अनुमति देगा:
12345 | उप DeleteArow ()ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").ListRows(2).Deleteअंत उप |
परिणाम है:
वीबीए के साथ एक कॉलम हटाना
आप ListColumns.Delete विधि का उपयोग करके अपनी तालिका से एक कॉलम हटा सकते हैं। हमारे पास निम्न तालिका है जिसे तालिका 1 कहा जाता है जिसे नीचे दिखाया गया है:
पहले कॉलम को हटाने के लिए, आप निम्न कोड का उपयोग करेंगे:
12345 | उप DeleteAColumn ()ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").ListColumns(1).Deleteअंत उप |
परिणाम है:
VBA में एक तालिका को एक श्रेणी में वापस परिवर्तित करना
आप VBA का उपयोग करके किसी तालिका को वापस सामान्य श्रेणी में बदल सकते हैं। निम्न कोड आपको दिखाता है कि तालिका 1 नामक तालिका को वापस एक श्रेणी में कैसे परिवर्तित किया जाए:
12345 | उप-परिवर्तित करने योग्यबैकटॉअन सामान्य श्रेणी ()ActiveWorkbook.Sheets("Sheet1").ListObjects("Table1").Unlistअंत उप |
VBA का उपयोग करके किसी वर्कशीट में सभी तालिकाओं में बैंडेड कॉलम और फ़ॉर्मेटिंग जोड़ना
आप ListObjects संग्रह का उपयोग करके अपने कार्यपत्रक में सभी तालिकाओं तक पहुँच सकते हैं। नीचे दी गई शीट में हमारे पास दो टेबल हैं और हम दोनों टेबलों में एक साथ एक बैंडेड कॉलम जोड़ना चाहते हैं और वीबीए का उपयोग करके दोनों टेबल के डेटा सेक्शन के फॉन्ट को बोल्ड में बदलना चाहते हैं।
12345678910111213 | उप जोड़ना बैंडेड कॉलम ()ListObject के रूप में मंद tblवर्कशीट के रूप में मंद शटसेट शट = यह वर्कबुक। एक्टिवशीटप्रत्येक tbl के लिए sht.ListObjects . मेंtbl.ShowTableStyleColumnStripes = Truetbl.DataBodyRange.Font.Bold = Trueअगला टीबीएलअंत उप |
परिणाम है:
DoCmd.RunSQL का उपयोग करके VBA में एक्सेस में एक टेबल बनाना
एक्सेस में VBA में तालिका बनाने के मुख्य तरीकों में से एक, SQL कथन के साथ एक क्रिया क्वेरी चलाने के लिए DoCmd.RunSQL विधि का उपयोग करना है।
हमारे पास हमारे नमूना फॉर्म पर एक बटन होता है और जब हम बटन पर क्लिक करते हैं तो हम दो फ़ील्ड या कॉलम के साथ प्रोडक्टटेबल नामक एक टेबल बनाना चाहते हैं, एक प्राथमिक कुंजी फ़ील्ड होगा जिसे उत्पाद आईडी कहा जाता है और दूसरा बिक्री नामक फ़ील्ड होगा।
इस तालिका को बनाने के लिए हम निम्नलिखित कोड का उपयोग करेंगे:
123456 | निजी उप cmdCreateProductsTable_Click()DoCmd.RunSQL "तालिका उत्पाद तालिका बनाएं" _और "(उत्पाद आईडी पूर्णांक प्राथमिक कुंजी, बिक्री पूर्णांक);"अंत उप |
परिणाम है:
VBA का उपयोग करके एक्सेस में एक तालिका को फ़िल्टर करना
आप DoCmd.ApplyFilter पद्धति का उपयोग करके Access में किसी तालिका को फ़िल्टर भी कर सकते हैं। हमारे पास उत्पादटेबल नामक एक्सेस में नीचे दी गई हमारी सरल तालिका है।
हम इस बटन को अपने फॉर्म पर दबाना चाहते हैं और उसके बाद केवल 1500 से अधिक की बिक्री देखना चाहते हैं।
तो, हम ऐसा करने के लिए निम्नलिखित कोड का उपयोग करेंगे:
1234567 | निजी उप cmdFilter_Click ()DoCmd.OpenTable "ProductsTable"DoCmd.ApplyFilter , "[बिक्री]>1500"अंत उप |
परिणाम है: