मेरे पास एक d = CreateObject("Scripting.Dictionary")
है कि इसके आइटम श्रेणियां हैं। मैं उन वस्तुओं को एक रिक्त वर्कशीट में पेस्ट करना चाहता हूं और यह वह कोड है जो मेरे पास अभी है:
ThisWorkbook.Sheets(2).ListObjects(1).DataBodyRange.Clear
With LatestRevisions
ThisWorkbook.Worksheets(2).Range("A1").Resize(.Count, 1) = Application.Transpose(.keys)
ThisWorkbook.Worksheets(2).Range("B1").Resize(.Count, 21) = Application.Transpose(.Items)
End With
जिसमें LatestRevisions
मेरे डिक्शनरी नाम d
के लिए एक वैरिएबल सेट है और मैं B1 से 21 की सीमा का आकार बदलता हूं क्योंकि यह मेरी आइटम श्रेणियों का आकार है।
मेरी समस्या यह है कि आइटम गलत दिशा में हैं (कॉलम डेटा पंक्तियों में है और पंक्ति डेटा कॉलम में है), लेकिन अगर मैं Application.Transpose
में नहीं डालता तो कुछ भी चिपकाया नहीं जाता है।
कोई विचार?
शुक्रिया
संपादित करें: यहां बताया गया है कि मेरा शब्दकोश कैसे बनाया और भरा जाता है
Set d = CreateObject("Scripting.Dictionary")
If SearchRng.Columns.Count > 1 Then Exit Function
For Each Cell In SearchRng
If Not d.Exists(Cell.Value) Then
d.Add Cell.Value, Cell.Offset(0, 1).Resize(1, 21) 'fetch data from column B:V
Else
RevisionInDict = ConvertTextToNumeric(d(Cell.Value).Cells(1).Value)
Revision = ConvertTextToNumeric(Cell.Offset(0, 1))
If Revision > RevisionInDict Then
Set d(Cell.Value) = Cell.Offset(0, 1).Resize(1, 21)
End If
End If
Next
Set GetLatestRevisions = d
End Function
1 उत्तर
चाल दोहरा हस्तांतरण करने के लिए है
निम्नलिखित "शीट 2" की कल्पना करें, जिसे मैंने श्रेणियों से पढ़ा है
छवि 1: "शीट2" में आइटम भरने के लिए उदाहरण डेटा है।
निम्नलिखित कोड…
Option Explicit
Public Sub TestDictionary()
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Dic.Add "key1", Worksheets("Sheet2").Cells(1, 1).Resize(1, 21)
Dic.Add "key2", Worksheets("Sheet2").Cells(2, 1).Resize(1, 21)
Dic.Add "key3", Worksheets("Sheet2").Cells(3, 1).Resize(1, 21)
Dic.Add "key4", Worksheets("Sheet2").Cells(4, 1).Resize(1, 21)
Dic.Add "key5", Worksheets("Sheet2").Cells(5, 1).Resize(1, 21)
Dic.Add "key6", Worksheets("Sheet2").Cells(6, 1).Resize(1, 21)
'output in column A and B
Worksheets("Sheet1").Range("A1").Resize(Dic.Count, 1).Value = Application.Transpose(dic.keys)
Worksheets("Sheet1").Range("B1").Resize(Dic.Count, 21).Value = Application.Transpose(Application.Transpose(Dic.items))
End Sub
... निम्नलिखित आउटपुट उत्पन्न करता है:
छवि 2: कॉलम A में कुंजियों के आउटपुट के लिए "Sheet1" और कॉलम B से V तक के आइटम।
संबंधित सवाल
नए सवाल
excel
केवल एक्सेल ऑब्जेक्ट्स या फ़ाइलों, या जटिल फॉर्मूला विकास के खिलाफ प्रोग्रामिंग पर प्रश्नों के लिए। यदि आप लागू हो तो आप Excel टैग को VBA, VSTO, C #, VB.NET, PowerShell, OLE स्वचालन और अन्य प्रोग्रामिंग संबंधी टैग और प्रश्नों के साथ जोड़ सकते हैं। सुपर उपयोगकर्ता पर एकल कार्यपत्रक कार्यों के लिए एमएस एक्सेल के बारे में सामान्य सहायता उपलब्ध है।