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

VBA批量复制工作簿数据遇类型不匹配错误,求排查解决

解决VBA批量复制工作簿数据时的“类型不匹配”错误

错误核心原因

  • 直接将File对象赋值给字符串变量、用File对象作为Workbooks.Open的参数,这两个操作都要求传入字符串类型,但你传入了File对象,触发“类型不匹配”错误。
  • 重复创建FileSystemObject实例,属于冗余代码,虽不直接报错,但会增加不必要的资源消耗。

修正步骤

  1. 替换File对象为文件路径字符串:所有需要用到文件路径的地方,用oFile.Path(完整路径)或oFile.Name(仅文件名)代替直接使用oFile。
  2. 清理冗余的FileSystemObject实例:只保留一个即可。
  3. 修复复制粘贴逻辑:明确复制来源是打开的工作簿中的工作表,粘贴目标是指定工作表。

修正后的完整代码

Option Explicit
Sub CopyDataFromDump()
    Dim SourceFolder As String
    Dim Wb As Workbook
    Dim CopyFromSheet As Worksheet
    Dim PasteToSheet As Worksheet
    Dim LastRow As Long
    Dim oFSO As Object
    Dim oFolder As Object
    Dim oFile As Object
    
    ' 目标文件夹路径
    SourceFolder = "C:\Users\jschlautman\Desktop\Dump\"
    
    ' 初始化文件系统对象
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder(SourceFolder)
    
    ' 指定粘贴目标工作表(当前工作簿的第一个工作表,可按需修改)
    Set PasteToSheet = ThisWorkbook.Sheets(1)
    
    For Each oFile In oFolder.Files
        ' 仅处理Excel文件,避免打开非Excel文件报错
        If oFSO.GetExtensionName(oFile.Path) Like "xls*" Then
            ' 用文件完整路径打开工作簿
            Set Wb = Workbooks.Open(oFile.Path)
            
            ' 指定复制来源工作表(打开工作簿的第一个工作表,可修改为指定表名)
            Set CopyFromSheet = Wb.Sheets(1)
            
            ' 复制数据(仅复制值,避免格式冲突)
            LastRow = PasteToSheet.Cells(PasteToSheet.Rows.Count, "A").End(xlUp).Row + 1
            CopyFromSheet.UsedRange.Copy
            PasteToSheet.Cells(LastRow, 1).PasteSpecial xlPasteValues
            
            ' 关闭源工作簿,不保存更改
            Wb.Close SaveChanges:=False
        End If
    Next oFile
    
    ' 释放对象,避免内存泄漏
    Set oFile = Nothing
    Set oFolder = Nothing
    Set oFSO = Nothing
    Set CopyFromSheet = Nothing
    Set PasteToSheet = Nothing
    Set Wb = Nothing
    
    MsgBox "数据批量复制完成!", vbInformation
End Sub

注意事项

  • 如果源工作簿的目标工作表不是第一个,将Wb.Sheets(1)改为Wb.Sheets("你的工作表名")。
  • 代码中添加了Excel文件过滤逻辑,避免尝试打开文件夹中的非Excel文件导致报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:48:32