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
microsoft-excel-2010
macros
jbesr
quelle
quelle
Antworten:
Ihr Versuch ist nah, zwei Bemerkungen:
"
um Zeichenfolgenbenutze das:
If Left(wb.Name,6) = "custom"
quelle