वर्तमान में मैं एक एक्सेल शीट पर काम कर रहा हूं जिसमें डेटा स्पेसिफिक भी 300 यूनिट प्रकार है। मैं अलग-अलग डेटा की प्रत्येक पंक्ति को लेने और उसे एक अलग शीट पर चिपकाने की कोशिश पर काम कर रहा हूं। मैंने एक शीट बनाने के लिए एक कोड बनाया और प्रत्येक व्यक्तिगत इकाई संख्या का नाम दिया। यह मेरे कोड में सब एडशीट () है जो शीट जोड़ रहा है और उन्हें "यूनिट # _ टाइप" नामक शीट से विशिष्ट यूनिट नंबरों का नामकरण कर रहा है।

मुझे उप डेटा आयात के साथ समस्याएं आ रही हैं। जैसा कि मैंने पहले कहा था कि मैं "यूनिट #_टाइप" नामक शीट से डेटा के साथ उप एडशीट द्वारा बनाई गई शीट को पॉप्युलेट करने का प्रयास कर रहा था। मैं पंक्ति A1-AD1 को पकड़ना चाहता हूं और इसे उप एडशीट द्वारा बनाई गई पहली शीट में रखना चाहता हूं। फिर मैं पंक्ति ए 2-एडी 2 को पकड़ना चाहता हूं और इसे उप एडशीट द्वारा बनाई गई अगली शीट पर रखना चाहता हूं। क्या मेरे लिए नेक्स्ट फॉर लूप के साथ ऐसा करने का कोई तरीका है? क्या मैं जो करने की कोशिश कर रहा हूं उसे पूरा करने का कोई आसान तरीका है?

Function SheetCheck(sheet_name As String) As Boolean

Dim ws As Worksheet

SheetCheck = False

For Each ws In ThisWorkbook.Worksheets

    If ws.Name = sheet_name Then

        SheetCheck = True

    End If

Next

End Function

Sub Addsheet()


Dim sheets_count As Integer
Dim sheet_name As String
Dim i As Integer
Dim j As Long

sheet_count = Range("A2:A7").Rows.Count

    For i = 1 To sheet_count

    sheet_name = Sheets("Unit #_Type").Range("A2:A4").Cells(i, 1).Value

    If SheetCheck(sheet_name) = False And sheet_name <> "" Then
    Worksheets.Add().Name = sheet_name
    End If

Next i
End Sub


Sub DataInport()

Dim i As Long
Dim j As Long
Dim k As Long

For i = 16 To ThisWorkbook.Sheets.Count
    For j = 2 To 6
    Sheets("Unit #_Type").Range("Aj:ADj").Copy

    Next j
    Sheets(i).Range("B1").PasteSpecial Transpose:=True
Next i

Application.CutCopyMode = False

End Sub`
0
Andres Barboza 14 सितंबर 2020, 18:10

1 उत्तर

सबसे बढ़िया उत्तर

मुझे नहीं लगता कि आपको यहां नेस्टेड लूप की जरूरत है, अगर आपका लक्ष्य हर बार अगली पंक्ति को पकड़ना है और इसे एक अलग शीट पर पेस्ट करना है। ऐसा कुछ काम कर सकता है:

Sub DataInport()

    Dim i As Long
    Dim j As Long
    
    j = 2
    
    For i = 16 To ThisWorkbook.Sheets.Count
        
        Sheets("Unit #_Type").Range("A" & j & ":AD" & j).Copy
        Sheets(i).Range("B1").PasteSpecial Transpose:=True
        j = j + 1
        
    Next i
    
    Application.CutCopyMode = False

End Sub
0
dwirony 14 सितंबर 2020, 18:21