ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1254|回复: 5

[求助] EXCEL相同表格工作表合并的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-5-29 11:19 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
之前在论坛下载“相同格式的几千个工作簿合并”表格,实现数据汇总的效果,但实际测试发现运行后数据消失(尝试更改了部分看得懂的代码)。
本人新手,大段代码看不懂,网上查了半天也没有头绪,所以请教各位指点。
附件“XRF有害物质测试记录(A1)“为汇总表,运行"GP"按钮选择导入工作表“01-002058-03 PAD”的数据。
此外,“HF”按钮需实现以下功能:
1.同“GP”一样导入外部工作表数据(如工作表“01-002058-03 PAD HF");
2.运行"GP"后再运行"HF",如D列数据存在,则只覆盖P列及S列的数据;如“HF”D列数据为新增,则提示错误信息(“新增数据”无GP报告)
以上感谢!

附件工作表.rar

20.97 KB, 下载次数: 21

工作表

TA的精华主题

TA的得分主题

发表于 2015-5-29 14:12 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-5-29 15:07 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-5-30 15:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请问哪位高手能帮忙解答下,元始代码是从A2开始的,我想从A5开始,但将参数改为"A5"运行后,表格中内容全都消失了。如附件,感谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-5-30 15:30 | 显示全部楼层
附上之前论坛老师提供的代码(修改红色部分后运行后数据消失):
Dim strSQL, s, Mypath$, OutputSheet$, OutputRange$, strCondition$
Sub 载入数据()
    strSQL = "select * " & _
             " from"
    strCondition = "WHERE 车间 IS NOT NULL "
    OutputSheet = "结果"
    OutputRange = "A2"
    Call subProgram(strSQL, OutputSheet, OutputRange, strCondition)
    MsgBox "OK"
End Sub

Sub subProgram(ByVal strSQL$, ByVal OutputSheet$, ByVal OutputRange$, ByVal strCondition$)
    Dim cnn As Object, rst As Object, rs As Object
    Dim strConn As String, SQL$
    Dim i As Integer, j%, Pathstr, s$, t$, sProvider$
    Pathstr = Application.GetOpenFilename(fileFilter:="Excel文件(*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", Title:="打开Excel文件", MultiSelect:=True) '选择多个EXCCEL 文件
    If TypeName(Pathstr) = "Boolean" Then Exit Sub
    Application.ScreenUpdating = False
    Select Case Application.Version * 1
        Case Is <= 11
            sProvider = "Provider = Microsoft.Jet.Oledb.4.0;Extended Properties ='Excel 8.0';Data Source ="
        Case Is >= 12
            sProvider = "Provider = Microsoft.Ace.Oledb.12.0;Extended Properties ='Excel 12.0';Data Source ="
    End Select
    On Error Resume Next
    With Sheets(OutputSheet)
        .Cells.ClearContents
        For i = 1 To UBound(Pathstr)
            If Pathstr(i) <> ThisWorkbook.FullName Then
                Set cnn = CreateObject("ADODB.Connection")
                cnn.Open sProvider & Pathstr(i)
                Set rs = cnn.OpenSchema(20)
                Do Until rs.EOF
                    If rs.Fields("TABLE_TYPE") = "TABLE" Then
                        s = Replace(rs("TABLE_NAME").Value, "'", "")
                        If Right(s, 1) = "$" Then
                            SQL = strSQL & "[" & s & "] " & strCondition
                            Set rst = cnn.Execute(SQL)
                            If Err.Number = 0 Then
                                m = m + 1
                                If m = 1 Then
                                    For j = 0 To rst.Fields.Count - 1
                                        .Cells(1, j + 1) = rst.Fields(j).Name
                                    Next
                                    .Range("A2").CopyFromRecordset rst
                                Else
                                    .Range("A1048576").End(xlUp).Offset(1).CopyFromRecordset rst
                                End If
                               ' Exit Do'此句不能启用,记住了!否则有一个工作簿有二个表的,只能提取到一个。
                            Else
                                Err.Clear
                            End If
                        End If
                    End If
                    rs.MoveNext
                Loop
            End If
        Next
        Cells.EntireColumn.AutoFit
    End With
    rst.Close
    rs.Close
    cnn.Close
    Set cnn = Nothing
    Set rs = Nothing
    Set rst = Nothing
    Application.ScreenUpdating = True
End Sub


TA的精华主题

TA的得分主题

发表于 2018-8-24 16:03 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 19:02 , Processed in 0.023338 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表