excel合并工作博

复制代码
Sub MergeSelectedFilesIntoCurrentWorkbook()
    Dim ws As Worksheet
    Dim wb As Workbook
    Dim targetWorkbook As Workbook
    Dim fileNames As Variant
    Dim i As Integer
    Dim sheet As Worksheet
    Dim csvWs As Worksheet
    
    ' 选择文件
    fileNames = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls*), *.xls*; CSV Files (*.csv), *.csv", _
                                            Title:="选择要合并的Excel/CSV文件", _
                                            MultiSelect:=True)
                                            
    ' 如果没有选择文件,则退出
    If IsArray(fileNames) = False Then
        MsgBox "没有选择文件,操作取消。"
        Exit Sub
    End If
    
    ' 禁用屏幕更新以提高速度
    Application.ScreenUpdating = False
    
    ' 设置当前工作簿
    Set targetWorkbook = ThisWorkbook
    
    ' 循环遍历选择的文件
    For i = LBound(fileNames) To UBound(fileNames)
        ' 根据文件扩展名进行处理
        If Right(fileNames(i), 4) = ".csv" Then
            ' 处理CSV文件
            Set wb = Workbooks.Open(fileNames(i))
            Set csvWs = wb.Sheets(1)
            csvWs.Copy After:=targetWorkbook.Sheets(targetWorkbook.Sheets.Count)
            wb.Close False
        ElseIf Right(fileNames(i), 4) = "xlsx" Or Right(fileNames(i), 4) = ".xls" Then
            ' 处理Excel文件
            Set wb = Workbooks.Open(fileNames(i))
            For Each sheet In wb.Sheets
                sheet.Copy After:=targetWorkbook.Sheets(targetWorkbook.Sheets.Count)
            Next sheet
            wb.Close False
        End If
    Next i
    
    ' 重新启用屏幕更新
    Application.ScreenUpdating = True
    
    MsgBox "所有选定的文件已成功合并到当前工作簿中。"
End Sub
  1. 文件选择Application.GetOpenFilename 方法允许选择 .xls, .xlsx, 和 .csv 文件。MultiSelect:=True 允许一次选择多个文件。

  2. 文件类型判断:代码通过检查文件的扩展名来决定如何处理:

    • CSV文件:打开文件后,只包含一个工作表,因此直接复制该工作表到目标工作簿中。
    • Excel文件 :对于 .xls.xlsx 文件,代码将遍历所有工作表并复制到目标工作簿。
  3. 文件关闭:在处理完每个文件后,源文件将被关闭以释放资源。

使用方法

  1. 打开目标工作簿。
  2. ALT + F11 打开VBA编辑器。
  3. 插入新模块 (Insert > Module) 并粘贴代码。
  4. 运行宏 (F5 键),选择你需要合并的Excel/CSV文件。

注意事项

  • CSV文件的格式:CSV文件通常只包含数据,没有格式或公式。当它们被合并时,数据将被直接复制到目标工作簿中,格式将使用默认的工作表格式。
  • 重复工作表名称:如果目标工作簿中已有相同名称的工作表,Excel将自动重命名新复制的工作表(如 "Sheet1 (2)"),以避免名称冲突。
相关推荐
lengjingzju2 小时前
一天掌握Vim,精华使用笔记
笔记·vim·excel
灵析表格21 小时前
灵析表格财务函数深度实用性分析与实操教程
开发语言·ai·json·excel·wps
杰夫(简道云个人搭建)1 天前
SAAS系统应该先解决业务问题,再优化体验
数据库·人工智能·低代码·excel·个人开发
AI导出鸭2 天前
怎么让豆包做表格?AI导出鸭苹果版将豆包输出的管道表格智能解析为二维结构,一键导出为Excel或Word标准表格。
人工智能·chatgpt·word·excel·ai导出鸭
Am-Chestnuts4 天前
AI表格复制到Excel后日期金额和编号被改写:导入与格式检查方法
excel
方渐鸿4 天前
【无标题】使用Agent总结网页信息写入Excel
ai·excel
汉拓3D数字化4 天前
设计标准化怎么落地?企业设计标准化的5阶段实施路径
科技·excel·系统·软件
灵析表格4 天前
json_ObjectToKV 函数:Excel解析JSON对象的权威方案
json·excel
灵析表格4 天前
灵析表格文本处理函数技术白皮书:WPS Excel 官方函数扩展库 18 项文本规整与正则批处理企业落地标准
ai·json·excel·wps
灵析表格5 天前
WPS Excel官方函数扩展库数据安全加密校验函数深度研究报告:Excel国密SM3/SM4加解密、MD5摘要、UUID、Base64与URL编解码全栈解析
excel·wps