You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求编写VBA代码:批量复制指定文件夹工作簿数据至目标工作簿

VBA代码实现指定范围跨工作簿复制粘贴

以下是满足你需求的完整VBA代码,针对新手做了关键注释,方便理解:

Sub CopySpecificRangeToTargetSheets()
    Dim sourceFolderPath As String
    Dim sourceWB As Workbook
    Dim targetWS As Worksheet
    Dim i As Integer
    Dim sourceFileName As String
    
    ' 关闭屏幕更新,提升运行速度
    Application.ScreenUpdating = False
    
    ' *************************
    ' 请修改为你的实际文件夹路径
    sourceFolderPath = "C:\你的文件夹路径\"
    ' *************************
    
    ' 循环处理01到10号工作表
    For i = 1 To 10
        ' 格式化数字为两位(01、02...10)
        Dim sheetNum As String
        sheetNum = Format(i, "00")
        
        ' 检查目标工作表是否存在
        On Error Resume Next
        Set targetWS = ThisWorkbook.Worksheets(sheetNum)
        On Error GoTo 0
        
        If Not targetWS Is Nothing Then
            ' 拼接源工作簿文件名
            sourceFileName = "Workbook_A_" & sheetNum & ".xlsx" ' 如果是xls格式,改成.xls
            
            ' 检查源文件是否存在
            If Dir(sourceFolderPath & sourceFileName) <> "" Then
                ' 打开源工作簿(后台打开,不显示)
                Set sourceWB = Workbooks.Open(Filename:=sourceFolderPath & sourceFileName, ReadOnly:=True)
                
                ' 复制指定区域:A200:E600
                sourceWB.Worksheets(1).Range("A200:E600").Copy
                
                ' 粘贴到目标工作表的C6起始位置
                targetWS.Range("C6").PasteSpecial Paste:=xlPasteValuesAndNumberFormats ' 只粘贴值和格式,也可以用xlPasteAll粘贴全部
                
                ' 关闭源工作簿,不保存
                sourceWB.Close SaveChanges:=False
                
                ' 清除剪贴板
                Application.CutCopyMode = False
            Else
                ' 如果源文件不存在,弹出提示
                MsgBox "未找到文件:" & sourceFileName, vbExclamation
            End If
        Else
            MsgBox "目标工作表" & sheetNum & "不存在", vbExclamation
        End If
    Next i
    
    ' 恢复屏幕更新
    Application.ScreenUpdating = True
    
    MsgBox "数据复制完成!", vbInformation
End Sub

关键步骤说明

  • 设置文件夹路径:把代码里的C:\你的文件夹路径\替换成你实际存放Workbook_A_XX的文件夹路径,注意末尾要加反斜杠\。
  • 循环处理工作表:通过Format(i, "00")把数字转换成两位格式,匹配你的文件名和工作表名。
  • 文件存在检查:用Dir函数判断源文件是否存在,避免报错。
  • 后台打开源文件:设置ReadOnly:=True以只读方式打开,防止占用文件;不显示打开窗口提升效率。
  • 粘贴选项:代码里用xlPasteValuesAndNumberFormats只粘贴值和数字格式,如果你需要包括公式、格式等全部内容,可以改成xlPasteAll。

使用注意事项

  1. 打开你的目标工作簿(包含Overview、01-10工作表的那个)。
  2. 按Alt + F11打开VBA编辑器,插入一个新模块(右键工作簿→插入→模块)。
  3. 把上面的代码粘贴进去,修改文件夹路径。
  4. 按F5运行代码,或者回到Excel界面,在开发工具选项卡里点击执行宏。

内容的提问来源于stack exchange,提问作者MassMage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 02:45:14