मैं वर्कशीट से डेटा मर्ज करना चाहता हूं जहां शीट नाम में "एसएपी" है। मैंने ऐसा करने के लिए कुछ कोड लिखा है लेकिन हर बार जब यह चलता है तो मुझे Run-time error '438' मिलता है। यह सिर्फ मेरे कोड की शुरुआत है, लेकिन यह काम नहीं करता :(

Private Sub MergeFiles()
    Dim ws As Worksheet
    Dim xPath As String

    xPath = ActiveWorkbook.Path & "\"
    Filename = Dir(xPath & "*.xlsx")

    Do While Filename <> ""

        Workbooks.Open Filename:=xPath & Filename, ReadOnly:=True
        For Each ws In Workbooks(Filename)
            If LCase(ws.Name) Like "SAP*" Then
                Sheets(ws).Activate
                Range("A2:L85").Select
                Selection.Copy
            End If
        Next ws

        Workbooks(Filename).Close
        Filename = Dir()
    Loop

End Sub

क्या कोई कृपया इसे हल करने में मेरी मदद कर सकता है?

1
Bence Farkas 9 अक्टूबर 2018, 16:22

1 उत्तर

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

आप अपने फॉर स्टेटमेंट को निम्नलिखित के साथ बदल सकते हैं और इसे काम करना चाहिए।

आप कार्यपुस्तिका के अंदर कार्यपत्रकों तक पहुंचना चाहते हैं, इसलिए आपको कार्यपत्रकों को संदर्भित करने की आवश्यकता है।

For Each ws In Workbooks(Filename).Worksheets
0
Imran Malek 9 अक्टूबर 2018, 13:31