VBA-Excel-Makro zum Durchsuchen geöffneter Arbeitsmappen mit einem bestimmten Text im Dateinamen

-1

Ich bin ein Makroneuling, der versucht, Makrocode hinzuzufügen, der Arbeitsmappen findet, bei denen die ersten 6 Zeichen im Dateinamen "Benutzerdefiniert" sind und alle Zeichen danach zulässig sind. Der Code wird dem unten stehenden Makro hinzugefügt. Dies ist erwünscht, weil ich oft viele andere offene Arbeitsmappen mit Dateinamen habe, die nicht mit den Zeichen "Benutzerdefiniert" beginnen, und ich keine Daten von diesen sammeln möchte.

Ich gehe davon aus, dass der jetzt gelesene Zeilencode geändert werden muss

"Wenn wb.Name <> ThisWorkbook.Name dann"

zu etwas wie:

"Wenn wb.Name = custom * .xl ?? Dann"

  • Excel 2010
  • Alle Dateien sind geöffnet.
  • Zu den Dateierweiterungen gehören XLS, XLXM, XLXS
  • Nur Dateien einschließen, bei denen die ersten 6 Buchstaben des Dateinamens "benutzerdefiniert" sind .... "

Code:

Sub getdata()

' Brings data (Tables)from workbooks that are open places the data in one large table in a workbook.

    Dim sh As Worksheet, wb As Workbook, lr As Long..
    Set sh = ThisWorkbook.Sheets(1) 'Edit sheet name  
    For Each wb In Application.Workbooks  
        If wb.Name <> ThisWorkbook.Name Then  
            ''lr = wb.Sheets(1).Cells.Find("*", , xlFormulas, xlPart, xlByRows, xlPrevious).Row  ' goes to bottom of data  
            lr = wb.Sheets(1).Cells.Find("*", , xlFormulas, xlPart, xlByRows, xlPrevious).Offset(-3, 0).Row              If Application.CountA(sh.Rows(4)) = 0 Then  
                wb.Sheets(1).Range("A4:P" & lr).Copy sh.Range("A4")  
            Else  
                wb.Sheets(1).Range("A4:P" & lr).Copy sh.Cells(Rows.Count, 1).End(xlUp)(2)  
            End If  
        End If  
    Next  
End Sub
jbesr
quelle
Hallo! Wir sind kein Skriptschreibdienst, können / werden aber mit Einzelheiten behilflich sein. Was haben Sie bisher versucht? Wo genau stecken Sie fest, was Sie in das Makro schreiben wollen?
ᴇcƬᴇιᴇ007

Antworten:

0

Ihr Versuch ist nah, zwei Bemerkungen:

  • Verwenden Sie immer "um Zeichenfolgen
  • VBA unterstützt keine Platzhalter für den Zeichenfolgenvergleich

benutze das:
If Left(wb.Name,6) = "custom"

Máté Juhász
quelle