VB6实现Excel多工作簿数据合并

以前的同事,工作需要,让我帮忙完成多个工作簿的汇总。

我就用最熟悉的VB6写了一个Form应用程序,这是因为我不知道她目前的系统和Office情况,如果太高大上了,她不会部署安装。索性就简单粗暴地来个桌面App。

App的操作效果:

程序源代码:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private f As Variant
Private i As Integer, j As Integer
Private ExcelApp As Excel.Application
Private wbk As Excel.Workbook, wbk2 As Excel.Workbook
Private wst As Excel.Worksheet, wst2 As Excel.Worksheet
Private rg As Excel.Range, rg2 As Excel.Range
Private arr() As Variant
Private Sub Command1_Click()
    On Error GoTo Err1
    If Me.List1.ListCount = 0 Or Me.Text1.Text = "" Or Me.Text2.Text = "" Then
        MsgBox "不满足合并条件,请确认各项,然后重试。", vbExclamation
        Exit Sub
    End If
    Set ExcelApp = CreateObject("Excel.Application")
    With ExcelApp
        .Visible = True
        .WindowState = xlMaximized
        Set wbk2 = .Workbooks.Add
        Set wst2 = wbk2.Worksheets(1)
        For i = 0 To Me.List1.ListCount - 1
            Me.List1.ListIndex = i
            f = Me.List1.List(i)
            If Dir(f) <> "" Then
                Set wbk = .Workbooks.Open(FileName:=f, UpdateLinks:=False)
                Set wst = wbk.Worksheets(Me.Text1.Text)
                Set rg = wst.Range(Me.Text2.Text)
                ReDim arr(1 To rg.Cells.Count)
                j = 0
                For Each rg2 In rg
                    j = j + 1
                    arr(j) = rg2.Value
                Next rg2
                wst2.Cells(i + 2, "A").Resize(, UBound(arr)).Value = arr
                wbk.Close False
            End If
        Next i
        wst2.UsedRange.EntireColumn.AutoFit
    End With
    Exit Sub
Err1:
    MsgBox Err.Description, vbCritical
End Sub

如果要下载工具,请加QQ群:61840693,去群文件下载。

原文地址:https://www.cnblogs.com/ryueifu-VBA/p/10409156.html

时间: 2024-10-04 17:55:45

VB6实现Excel多工作簿数据合并的相关文章

我们无法找到服务器加载工作簿的数据模型&quot;的 SharePoint 网站,当您刷新 Excel 2013 工作簿中的数据透视表时出错

假定您使用 Analysis Services 源在 Microsoft Excel 2013 中创建数据透视表.将 Excel 工作簿上载到 Microsoft SharePoint 网站中.当您尝试刷新数据透视表或数据透视表中筛选数据时,您会收到以下错误消息: 我们无法找到服务器加载工作簿的数据模型. 由于没有在管理中心网站配置 Analysis Services 实例,将出现此问题. 若要变通解决此问题,请配置 SharePoint 服务器上的 Excel Services 服务应用程序.

Excel多个表数据合并代码

要求:多个子表数据格式需一致 新建一个空文件夹,将需要合并的子表放在空文件夹中 在文件夹中新建一个空的excel文件 打开空的excel,右键Sheet1,点击查看代码  将以下代码粘贴到代码框中 1 Sub 合并当前目录下所有工作簿的全部工作表() 2 3 Dim MyPath, MyName, AWbName 4 5 Dim Wb As Workbook, WbN As String 6 7 Dim G As Long 8 9 Dim Num As Long 10 11 Dim BOX As

创建EXCEL"当前工作簿"的宏

创建一个宏,保存在"当前工作簿"中,将EXCEL关闭后,再打开后,提示我"已删除的部件: 部件 /xl/vbaProject.bin. (Visual Basic for Applications (VBA))". 创建的宏就没有,写的东西就没了. 解决方法:在第一次创建宏的时候,将宏 ".bas"文件 给导出来,将EXCEL打开,将该文件导入到EXCEL中,这样就可以了.再对这个宏的任何修改,都能保存住了,不会随着EXCEL的关闭而丢失了.

Excel不同工作簿之间提取信息

Sub 不同工作簿间提取信息() '用于单个字段信息的提取: Dim w As Workbook, wb1 As Workbook, wb2 As Workbook, wb3 As Workbook Dim sh As Worksheet, sh1 As Worksheet, sh2 As Worksheet, ce As Range, shp As Shape Dim dic As Object, re As Object Dim arr, brr, crr '若带()则默认为一维数组: Se

Excel跨工作簿引用

跨工作薄引用的要点 1.跨工作薄引用的EXCEL文件名用[]括起来: 2.表名和单元格之间用!隔开: 3.路径可以是绝对路径也可以是相对路径(同一目录下),且需要使用扩展名: 4.引用还有个好处就是能自动更新 总之,跨工作薄引用的简单表达式是:'盘符:\[工作薄名称.xls]表名1'!数据区域 比如 'D:\[成绩表.xls]Sheet1'!A2:A7 如果是相对路径,还可以这样写:'[成绩表.xls]Sheet1'!A2:A7

【Excel】+数据合并

1.&符号连接 excel中2列数据合并到一列,并且以逗号分隔:=a1&","&b1 2.ctrl+g excel中空白单元格,自动填充上一单元格的内容:https://jingyan.baidu.com/article/0eb457e50412d703f1a905d6.html 原文地址:https://www.cnblogs.com/danhuai/p/11152676.html

如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据

本文分步介绍了多种从 Microsoft Visual C# 2005 或 Microsoft Visual C# .NET 程序向 Microsoft Excel 2002 传输数据的方法.本文还提供了每种方法的优点和缺点,以便您可以选择最适合您的情况的解决方案. 概述 最常用于向 Excel 工作簿传输数据的方法是"自动化".利用"自动化"功能,您可以调用特定于 Excel 任务的方法和属性."自动化"功能为您提供了指定数据在工作簿中所处的位

Excel VBA 从一个工作簿查找另一个一个工作簿中的一些内容复制到另外一个工作簿

帮朋友来写个Excel VBA 以前写过ASP,所以对vb略微熟悉,但VBA 没有仔细研究过. 以前只研究过 vba 写一个 计算个人所得税的程序. 这次写的功能也算是简单,但也耗费了两天的功夫. 需求: 1 从[操作]表中,查找最后一行的数据,每一列 都为关键字 2 遍历这些关键字,从[总表]中查询这个关键字,把这一行后面的内容复制到 [预算]表中去 3 把[操作]中制定内容复制到[信息统计]中 Function Get操作NullLine() ' '从 操作表 获取最后一个有数据下面的空行

VBS读取txt文档数据查找Excel中单元格数据符合条件的剪切到工作表2中

Dim fso,f,a set oExcel = CreateObject( "Excel.Application" ) oExcel.Visible = false '4) 打开已存在的工作簿: oExcel.WorkBooks.Open( "F:\1.xlsx" ) On Error Resume Next '判断是否存在Sheet2工作表,不存在新建 If oExcel.WorkSheets("Sheet2") Is Nothing The