पर एक वीबीए संग्रह कैसे लिखें I मेरे पास कुछ मौजूदा कोड है जो मैं संशोधित कर रहा हूं। यह कोड पूर्ववर्ती वर्कशीट टेबल से पंक्तियों का संग्रह बनाता है। यह प्रत्येक कॉलम में अलग-अलग जानकारी के साथ एक बड़ा 2-डी संग्रह बनाता है। एक अलग वर्ग मॉड्यूल है जो प्रत्येक कॉलम के लिए डेटा प्रकार घोषित करता है।एक्सेल शीट
कोड प्रत्येक आइटम के माध्यम से लूपिंग द्वारा 2-डी संग्रह को एक नई शीट में लिखता है। मैंने पहले कभी संग्रह नहीं किया है, और एक ही पास में शीट में संग्रह लिखना चाहता हूं। वर्तमान कोड में काफी लंबा समय लगता है जब तालिका में बहुत सारे रिकॉर्ड होते हैं।
क्या संपूर्ण संग्रह को 2-डी सरणी में परिवर्तित करने का कोई तरीका है, या फिर मैं एक ही बार में 2-डी सरणी लिख सकता हूं? या क्या पूरे संग्रह को शीट में लिखने का कोई तरीका है, बस 2-डी सरणी के साथ? मैंने इसकी खोज करने की कोशिश की है और अब तक असफल रहा है। किसी भी सामान्य अंक की सराहना की जाएगी!
यहां कुछ उदाहरण कोड है, बोल्ड में टिप्पणियों के साथ, यह वर्णन करने के लिए कि संग्रह का उपयोग कैसे किया जा रहा है।
परिभाषित क्लास मॉड्यूल, TableEntry
Public Item1 As String
Public Item2 As String
Public Item3 As String
Public Item4 As Integer
Public Item5 As Integer
के रूप में नामांकित
मुख्य रूटीन - समूह बनाएं, संग्रह भरें, शीट
Sub MainRoutine()
Dim table As Collection
Set table = New Collection
Call FillCollection(File As String, ByRef table As Collection)
Call WriteCollectionToSheet(ByRef table As Collection)
को संग्रह लिखें उप दिनचर्या 1 - संग्रह भरें
Dim wb As Workbook
Set wb = Workbooks.Open(File)
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Dim R As Range
Set R = ws.Range("A2")
Dim e As TableEntry
For i = 1 To 20
Set e = New TableEntry
e.Item1 = R.Offset(i + 1, 0).Offset(0, 0)
e.Item2 = R.Offset(i + 1, 0).Offset(0, 1)
e.Item3 = R.Offset(i + 1, 0).Offset(0, 2)
e.Item4 = R.Offset(i + 1, 0).Offset(0, 3)
e.Item5 = R.Offset(i + 1, 0).Offset(0, 4)
table.Add e
Next i
Next ws
उप दिनचर्या 2 - पत्र के संग्रह लिखें
धन्यवाद रैग। मुझे यह स्वयं पाया जाना चाहिए – psychonomics
उपरोक्त लिंक में उत्तर संग्रह के बजाय एक सरणी का उपयोग करता है। क्या यह मुझे करना चाहिए, या एक संग्रह में एक संग्रह को स्थानांतरित करने का तरीका है, या वास्तव में एक पास में संग्रह लिखना है? – psychonomics
असल में, यदि आप स्क्रीन अपडेटिंग और गणना बंद कर देते हैं, तो यह पर्याप्त तेज़ होगा, भले ही आप लूप का उपयोग करें। – martin