Soy un principiante en macros que intenta agregar un código de macro que encontrará libros en los que los primeros 6 caracteres en el nombre del archivo son "Personalizados" y cualquier carácter posterior está permitido. El código se agregará a la macro a continuación. Esto se desea porque a menudo tengo muchos otros libros de trabajo abiertos con nombres de archivos que no comienzan con los caracteres "Personalizados" y no deseo recopilar ningún dato de estos.
Supongo que implicará cambiar el código de línea que ahora lee
"Si wb.Name & lt; & gt; ThisWorkbook.Name Then"
a algo como:
"Si wb.Name = custom * .xl ?? Entonces"
- Excel 2010
- Todos los archivos están abiertos.
- Las extensiones de archivo incluyen .xls, .xlsm, .xlsx
- Incluya solo archivos en los que las primeras 6 letras del nombre del archivo sean 'personalizadas .... "
Código:
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
fuente
fuente
Respuestas:
Tu intento está cerca, dos observaciones:
"
alrededor de cuerdasutilizar esta:
If Left(wb.Name,6) = "custom"
fuente