VBA excel 宏用于搜索文件名中包含特定文本的打开的工作簿

VBA excel 宏用于搜索文件名中包含特定文本的打开的工作簿

我是一名宏新手,想添加宏代码来查找文件名前 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"

相关内容