将多个工作簿(和筛选)加载到同一张excel 2010工作表中

将多个工作簿(和筛选)加载到同一张excel 2010工作表中,excel,excel-2010,vba,Excel,Excel 2010,Vba,我正在尝试将多个工作簿加载到同一工作表中,这些工作簿都将包含一个公共列标题。加载多个工作簿后,我希望搜索所需的行并将其粘贴到新工作表上 到目前为止,我已经完成了搜索和粘贴部分,但需要加载多个工作簿的部分非常困难,有人能帮我吗?谢谢 Sub SearchRowAndCopy() Dim strSearch strSearch = Application.InputBox("Please enter the search string") x = 2 Do While Cells(x, 1) &l

我正在尝试将多个工作簿加载到同一工作表中,这些工作簿都将包含一个公共列标题。加载多个工作簿后,我希望搜索所需的行并将其粘贴到新工作表上

到目前为止,我已经完成了搜索和粘贴部分,但需要加载多个工作簿的部分非常困难,有人能帮我吗?谢谢

Sub SearchRowAndCopy()
Dim strSearch 
strSearch = Application.InputBox("Please enter the search string")
x = 2
Do While Cells(x, 1) <> ""
If Cells(x, 2) Like "*" & strSearch & "*" Then
Worksheets("Sheet1").Rows(x).Copy
Worksheets("Sheet2").Activate
erow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste Destination:=Worksheets("Sheet2").Rows(erow)
End If
Worksheets("Sheet1").Activate
x = x + 1
Loop
End Sub
子搜索行和副本()
模糊搜索
strSearch=Application.InputBox(“请输入搜索字符串”)
x=2
“在单元格(x,1)”时执行”
如果单元格(x,2)像“*”和strearch&“*”那么
工作表(“表1”)。行(x)。副本
工作表(“表2”)。激活
erow=Sheet2.单元格(Rows.Count,1).结束(xlUp).偏移量(1,0).行
ActiveSheet.Paste目标:=工作表(“Sheet2”).行(erow)
如果结束
工作表(“表1”)。激活
x=x+1
环
端接头

您可以使用
Dir(folderPath&“*.xls*”)
获取给定文件夹中的所有工作簿,并使用
workbooks.Open()
将每个工作簿加载到Excel中。还是你在复制方面遇到了问题?@TimWilliams不,我正试图从我选择的每一本工作簿中提取数据,并将它们编译成一张表格,如果我没有说清楚的话,很抱歉……如何选择?它们已经开放了吗?@TimWilliams不,它们还没有开放,但它们都处于与我最初建议相同的状态。
Sub GetFiles()
    Dim fPath As String
    Dim sFile As String
    Dim wb As Workbook

    fPath = "D:\Analysis\"

    sFile = Dir(fPath & "*.xls*")

    Do While Len(sFile) > 0
        Debug.Print fPath & sFile
        Set wb = Workbooks.Open(Filename:=sFile, ReadOnly:=True)
        '...
        'do your copying
        '...
        wb.Close False
        sFile = Dir
    Loop
End Sub