Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件夹中特定的excel文件复制到主工作表中_Excel_Vba - Fatal编程技术网

将文件夹中特定的excel文件复制到主工作表中

将文件夹中特定的excel文件复制到主工作表中,excel,vba,Excel,Vba,对于我的一个项目,我需要将文件夹中多个excel工作簿中的数据复制到主工作表中 之前的要求是从所有文件中复制sheet1,但需要进行新的更改 从所有文件中复制图纸1和图纸4 所有工作表上的标题都相同 我尝试了各种代码来更改当前代码,但无法驱动任何结果 因此,我想与这里的专家核实一下,你是否遇到过这样的问题,并且可以就同样的问题提出可能的建议 非常感谢您提前花时间和精力 *Sub FILESMERGE() Dim wb As Workbook, sh As Worksheet, fPath As

对于我的一个项目,我需要将文件夹中多个excel工作簿中的数据复制到主工作表中

之前的要求是从所有文件中复制sheet1,但需要进行新的更改 从所有文件中复制图纸1和图纸4

所有工作表上的标题都相同

我尝试了各种代码来更改当前代码,但无法驱动任何结果

因此,我想与这里的专家核实一下,你是否遇到过这样的问题,并且可以就同样的问题提出可能的建议

非常感谢您提前花时间和精力

*Sub FILESMERGE()
Dim wb As Workbook, sh As Worksheet, fPath As String, fName As String
Set sh = ThisWorkbook.Sheets(1)
fPath = "C:\Users\Desktop\FTC" 'Provide folder path here
    If Right(fPath, 1) <> "\" Then fPath = fPath & "\" 'Make sure separator is on end of path
fName = Dir(fPath & "*.xlsx*") 'get all Excel files in directory
    Do
        If fName <> ThisWorkbook.Name Then
            Set wb = Workbooks.Open(fPath & fName)
            With wb.Sheets(1)
                If Application.CountA(.Rows(2)) > 0 Then
                    .UsedRange.Offset(1).Copy sh.Cells(Rows.Count, 1).End(xlUp)(2)

                End If
            End With
            wb.Close False
        End If
        fName = Dir
    Loop While fName <> ""



End Sub*
*子文件合并()
将wb作为工作簿、sh作为工作表、fPath作为字符串、fName作为字符串
Set sh=ThisWorkbook.Sheets(1)
fPath=“C:\Users\Desktop\FTC”'在此处提供文件夹路径
如果正确(fPath,1)“\”,则fPath=fPath&“\”,确保分隔符位于路径的末尾
fName=Dir(fPath&“*.xlsx*”)获取目录中的所有Excel文件
做
如果fName ThisWorkbook.Name,则
设置wb=工作簿。打开(fPath&fName)
附工作分解表(1)
如果Application.CountA(.Rows(2))>0,则
.UsedRange.Offset(1).复制sh.Cells(Rows.Count,1).结束(xlUp)(2)
如果结束
以
wb.关闭错误
如果结束
fName=Dir
在fName“”时循环
端接头*

您已经在使用
wb.Sheets(1)
了-那么您也需要使用
wb.Sheets(4)
。@BigBen感谢您的建议,它确实有效,但再次使用代码将重新打开所有文件,不知道您是否有任何建议,在粘贴表1中的数据后立即从表4复制数据