Excel Search Engine

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Excel Search Engine

    ?( Guten Tag, ?(
    Im Zuge meiner Bachelorarbeit soll ich ein Suchscript schreiben um Daten für eine Statistik leichter zu sammeln.
    Mein Programm ist bisher gelaufen aber ich habe es durch den kommentierten Bereich in der Mitte des Codes erweitert und nun bekomme ich die Fehlermeldung "Loop ohne Do"

    Bisher ist das Programm xlsx Dateien in einem Pfad durchgegangen un hat die angegebene Range in ein neu erstelltes Sheet eingefügt.
    Dieses Sheet wurde dann auch nach der Datei benannt und so wurden die Gesuchten Daten immerwieder in ein neues Sheet eingefügt.

    Klasse Sache. Das Problem ist nur das in den gesuchten Dateien nicht immer das Sheet "Beutel(bag)" vorhanden ist, deshalb soll das Programm überprüfen ob das Sheet vorhanden ist, sonst soll es weitersuchen.

    Ich bin leider noch neu in VBA

    Visual Basic-Quellcode

    1. Sub Mehrere_Dateien_einlesen()
    2. Dim strFile As String
    3. strPath = "C:\Users\youne\Desktop\Wartungsprotokolle\Data\253-2134\A3_181207_004\"
    4. strExt = "*.xlsx"
    5. If strPath = "" Then
    6. Exit Sub
    7. Else
    8. strFile = Dir(strPath & strExt)
    9. Do While Len(strFile) > 0
    10. Workbooks.Open Filename:=strPath & strFile
    11. 'Dieser Teil ist neu
    12. TotalSheets = ThisWorkbook.Worksheets.Count
    13. For Each ws In ThisWorkbook.Sheets
    14. CheckSheet = ThisWorkbook.Worksheets("Beutel(bag)")
    15. For i = 1 To TotalSheets
    16. If ThisWorkbook.Worksheets(i).Name = CheckSheet Then
    17. ThisWorkbook.Worksheets("Beutel(bag)").Activate
    18. End If
    19. 'Bis hier
    20. Workbooks(strFile).Worksheets("Beutel(bag)").Range("B73,F73:I73,B90,F90:I90,B91,F91:I91").Copy
    21. ThisWorkbook.Worksheets.Add.Name = strFile
    22. ThisWorkbook.Worksheets(strFile).Range("A1").PasteSpecial Paste:=xlValues
    23. Workbooks(strFile).Close False
    24. strFile = Dir()
    25. Loop
    26. End If
    27. End Sub


    Verschoben. Code-Tags eingefügt. ~Thunderbolt

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Thunderbolt“ ()

    Willkommen im Forum. Loop ohne Do ist eine Nebelkerbe/ein Roter Hering, da in Zeile#36 ja das Loop ist. Nur fehlt Dir für Z#19 und #21 das passende Abschluss-Next. Eine For-Schleife endet immer mit Next, und zwar an dem Punkt, an dem die Schleife wieder zum Anfang zurückkehren soll.
    In Z#22 vergleichst Du ein Worksheet mit einem Namen. Das kann nix werden. Du kannst zwar den Namen des einen mit dem Namen des anderem vergleichen, aber der Name Tetzlaff und Herr Alfred Tetzlaff sind nunmal nicht das Gleiche. (Schade, dass es in VBA kein Option Strict On gibt)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.