वीबीए मैट्रिक्स - बनाएं और अधिक

यह ट्यूटोरियल आपको दिखाएगा कि वीबीए में एक ऐरे का उपयोग करके मैट्रिक्स कैसे बनाया जाए।

एक मैट्रिक्स पंक्तियों और स्तंभों की समान मात्रा वाली संख्याओं का एक आयताकार सरणी है। आप ऐरे वेरिएबल्स को पॉप्युलेट करके और वीबीए लूप्स का उपयोग करके वीबीए में मैट्रिक्स बना सकते हैं।

वीबीए में एक मैट्रिक्स बनाना

123456789101112131415 उप CreateSimpleMatrix ()मंद मैट्रिक्स () पूर्णांक के रूप मेंडिम एक्स, आई, जे, के अस इंटीजर'सरणी के आकार को फिर से मंद करें'ReDim मैट्रिक्स(१ से ३, १ से ३) पूर्णांक के रूप मेंएक्स = 1मैं = 1 से 3 . के लिएजे = 1 से 3 . के लिएमैट्रिक्स (i, j) = xएक्स = (एक्स + 1)अगला जेअगला मैं' एक बार में शीट पर परिणाम लौटाएंरेंज ("ए 1: सी 3") = मैट्रिक्सअंत उप

ऊपर दी गई प्रक्रिया को चलाने से आपके वर्कशीट में एक साधारण मैट्रिक्स रेंज ("A1: C3") पर वापस आ जाएगा।

सिंगल रो वेक्टर को मैट्रिक्स में बदलें

नीचे दी गई संख्याओं के कॉलम पर विचार करें। आप किसी स्तर पर संख्याओं के कॉलम को मैट्रिक्स में बदलना चाह सकते हैं।

नीचे दिए गए फ़ंक्शन का उपयोग करके, हम संख्याओं की सूची से एक मैट्रिक्स बना सकते हैं।

123456789101112131415161718192021 फंक्शन Create_Matrix(Vector_Range as Range, No_Of_Cols_in_output as Integer, No_of_Rows_in_output as Integer) वैरिएंट के रूप मेंReDim Temp_Array(1 to No_Of_Cols_in_output, 1 To No_of_Rows_in_output)Dim No_Of_Elements_In_Vector as IntegerDim Col_Count पूर्णांक के रूप में, Row_Count पूर्णांक के रूप मेंNo_Of_Elements_In_Vector = Vector_Range.Rows.Count'शून्य शर्तों को हटा दें'अगर वेक्टर_रेंज कुछ भी नहीं है तो फ़ंक्शन से बाहर निकलेंअगर No_Of_Cols_in_output = 0 तो फ़ंक्शन से बाहर निकलेंअगर No_of_Rows_in_output = 0 तो फ़ंक्शन से बाहर निकलेंयदि No_Of_Elements_In_Vector = 0 तो फ़ंक्शन से बाहर निकलेंCol_Count = 1 से No_Of_Cols_in_output के लिएRow_Count = 1 से No_of_Rows_in_output के लिएTemp_Array(Col_Count, Row_Count) = Vector_Range.Cells(((No_of_Rows_in_output) * (Col_Count - 1) + Row_Count), 1)अगली पंक्ति_गणनाअगला Col_CountCreate_Matrix = Temp_Arrayअंत समारोह

हम उपरोक्त फ़ंक्शन को कॉल करके, हमारी एक्सेल शीट में मैट्रिक्स बना सकते हैं।

123 उप कन्वर्ट टोमैट्रिक्स ()रेंज ("सी 1: एच 2") = क्रिएट_मैट्रिक्स (रेंज ("ए 1: ए 10"), 2, 6)अंत उप

मैट्रिक्स को सिंगल रो वेक्टर में बदलें

वैकल्पिक रूप से, आप एक मैट्रिक्स को एकल पंक्ति में बदलना चाह सकते हैं। नीचे दिए गए मैट्रिक्स पर विचार करें।

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

12345678910111213141516171819202122 फंक्शन Create_Vector(Matrix_Range As Range) वैरिएंट के रूप मेंडिम No_of_Cols पूर्णांक के रूप में, No_Of_Rows पूर्णांक के रूप मेंडिम आई अस इंटीजरडिम जे अस इंटीजर'मैट्रिक्स से पंक्तियों और स्तंभों को उठाएं'No_of_Cols = Matrix_Range.Columns.CountNo_Of_Rows = Matrix_Range.Rows.CountReDim Temp_Array(No_of_Cols * No_Of_Rows)'शून्य शर्तों को हटा दें'यदि मैट्रिक्स_रेंज कुछ भी नहीं है तो फ़ंक्शन से बाहर निकलेंअगर No_of_Cols = 0 तो फ़ंक्शन से बाहर निकलेंयदि No_Of_Rows = 0 तो फ़ंक्शन से बाहर निकलें'सरणी के माध्यम से लूप - पहला तत्व'j = 1 से No_Of_Rows . के लिए'अब दूसरे तत्व के माध्यम से लूप करें'i = 0 से No_of_Cols - 1 . के लिए'एकल आयाम अस्थायी सरणी को असाइन करें'Temp_Array((i * No_Of_Rows) + j) = Matrix_Range.Cells(j, i + 1)अगला मैंअगला जेCreate_Vector = Temp_Arrayअंत समारोह

अब हम नीचे दी गई प्रक्रिया का उपयोग करके इस फ़ंक्शन को कॉल कर सकते हैं।

1234567891011 सब जेनरेटवेक्टर ()डिम वेक्टर () वैरिएंट के रूप मेंडिम के अस इंटीजरमंद No_of_Elements'सरणी प्राप्त करें'वेक्टर = Create_Vector (शीट्स ("शीट 1")। रेंज ("ए 1: डी 5"))'सरणी के माध्यम से लूप करें और शीट को पॉप्युलेट करें'k = 0 के लिए UBound(वेक्टर) के लिए - 1शीट्स ("शीट 1")। रेंज ("जी 1")। ऑफसेट (के, 0)। मान = वेक्टर (के + 1)अगला केअंत उप

यह प्रक्रिया निम्नलिखित परिणाम लौटाएगी।

एक मैट्रिक्स सरणी बनाने के लिए WorksheetFunction.MMULT का उपयोग करना

निम्नलिखित स्प्रेडशीट पर विचार करें।

हम ब्याज दर और व्यक्ति द्वारा उधार ली जाने वाली राशि के आधार पर उपरोक्त ग्रिड के लिए ब्याज राशि की गणना करने के लिए नीचे दी गई प्रक्रिया का उपयोग कर सकते हैं।

123456789101112 उप उपयोगMMULT ()रेंज के रूप में मंद rngIntRateसीमा के रूप में मंद rngAmtLoanमंद परिणाम () प्रकार के रूप में'हमारी श्रेणी की वस्तुओं को आबाद करें'सेट rngIntRate = रेंज ("बी 4: बी 9")सेट rngAmtLoan = रेंज("C3:H3")'परिणाम सरणी भरने के लिए एमएमयूएलटी सूत्र का प्रयोग करें'परिणाम = वर्कशीटफंक्शन। एममल्ट (rngIntRate, rngAmtLoan)'शीट को पॉप्युलेट करें'रेंज ("सी 4: एच 9") = परिणामअंत उप

आप ऊपर की शीट में देखेंगे कि ऊपर की प्रक्रिया सूत्रों के बजाय मूल्यों के साथ कोशिकाओं को पॉप्युलेट करती है - उपरोक्त ग्राफिक में C4 देखें - इसमें 200 का मान है, सूत्र नहीं। का उपयोग करते हुए कार्यपत्रक समारोह विधि हमेशा वर्कशीट में एक स्थिर मान लौटाती है, सूत्र नहीं। इसका मतलब है कि ब्याज दर या ऋण राशि में परिवर्तन होना चाहिए, भरे हुए मैट्रिक्स में संबंधित मान नहीं होगा परिवर्तन।

का उपयोग करने के बजाय वर्कशीट फंक्शन।MMULT, आप एमएमयूएलटी फ़ंक्शन को एक सेल में लागू करने के लिए वीबीए का उपयोग कर सकते हैं फॉर्मूलाअरे तरीका।

123 उप सम्मिलित करेंएमएमयूएलटी ()रेंज ("सी 4: एच 9")। फॉर्मूलाएरे = "= एममुल्ट (बी 4: बी 9, सी 3: एच 3)"अंत उप

ध्यान दें कि अब जब स्प्रैडशीट भर जाती है, तो कक्षों में एक सूत्र का उपयोग किया जाता है।

आप साइट के विकास में मदद मिलेगी, अपने दोस्तों के साथ साझा करने पेज

wave wave wave wave wave