我是一名宏新手,想添加宏代码来查找文件名前 6 个字符为“Custom”且之后的任何字符都允许的工作簿。代码将添加到下面的宏中。这是理想的,因为我经常打开许多其他工作簿,其文件名不以字符“Custom”开头,并且我不想从中收集任何数据。
我认为这将涉及更改现在显示的代码行
“如果 wb.Name <> ThisWorkbook.Name 则”
类似于:
“如果 wb.Name = custom*.xl?? 那么”
- Excel 2010
- 所有文件均已打开。
- 文件扩展名包括 .xls、.xlxm、.xlxs
- 仅包含文件名前 6 个字母为“自定义...”的文件。
代码:
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
答案1
你的尝试很接近了,有两点意见:
- 总是使用
"
字符串 - VBA 不支持使用通配符进行字符串比较
用这个:
If Left(wb.Name,6) = "custom"