आप सेल छोरों के बजाय संस्करण सरणियों का उपयोग कर बेहतर होगा में परिणाम होता है - वे बहुत जल्दी कोड बुद्धिमान एक बार डेटा सेट सार्थक कर रहे हैं। यहां तक कि कोड भी लंबा है :)
नीचे यह नमूना स्तंभ सी और डी पर डंप करता है ताकि आप मूल डेटा देख सकें। बदलें [c1].Resize(lngCnt, 2).Value2 = Application.Transpose(Y)
[a1].Resize(lngCnt, 2).Value2 = Application.Transpose(Y)
करने के लिए अपने मूल डेटा
Sub SliceNDice()
Dim objRegex As Object
Dim X
Dim Y
Dim lngRow As Long
Dim lngCnt As Long
Dim tempArr() As String
Dim strArr
Set objRegex = CreateObject("vbscript.regexp")
objRegex.Pattern = "^\s+(.+?)$"
'Define the range to be analysed
X = Range([a1], Cells(Rows.Count, "b").End(xlUp)).Value2
Redim Y(1 To 2, 1 To 1000)
For lngRow = 1 To UBound(X, 1)
'Split each string by ","
tempArr = Split(X(lngRow, 2), ",")
For Each strArr In tempArr
lngCnt = lngCnt + 1
'Add another 1000 records to resorted array every 1000 records
If lngCnt Mod 1000 = 0 Then Redim Preserve Y(1 To 2, 1 To lngCnt + 1000)
Y(1, lngCnt) = X(lngRow, 1)
Y(2, lngCnt) = objRegex.Replace(strArr, "$1")
Next
Next lngRow
'Dump the re-ordered range to columns C:D
[c1].Resize(lngCnt, 2).Value2 = Application.Transpose(Y)
End Sub
आप कर रहे हैं [
,
यानी के बाद किसी भी रिक्त स्थान को दूर करने के लिए regexp साथ अपडेट किया गया ", बैंड" "बैंड" हो जाता है] से अधिक डंप करने के लिए इस जगह को करने की कोशिश कर रहे हैं या आप नई शीट का उपयोग करने के साथ ठीक हैं? –यह ठीक है किसी भी तरह से। – redGREENblue
और आपने अभी तक कोशिश की है? क्या काम किया? क्या नहीं हुआ –