ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 多工作薄多条件查询求助

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-1-20 20:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
附件………………
查询.rar (1.85 MB, 下载次数: 151)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-20 21:10 | 显示全部楼层

赵老师好!我的是07版的,您的数组法用起来比较慢!如13楼的代码(截图)怎么更改后就可以用了,文本数字查询条件都可用。衷心道声:老师辛苦了!
QQ截图20160120210529.png

TA的精华主题

TA的得分主题

发表于 2016-1-20 21:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
附件
查询.rar (713.55 KB, 下载次数: 143)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-21 10:27 | 显示全部楼层

赵老师上午好!经过大量数据测试,格式稍微修改,还是有以下小问题(如截图),标记栏查询条件圈内输入任意字段还是查不到记录。老师这个能做成一个通用的代码么?无论一个条件还是多个条件组合查询,格式上细微的变化,都可以查。老师,辛苦了!
2016-01-21_101927.jpg

单价查询.zip

48.55 KB, 下载次数: 50

TA的精华主题

TA的得分主题

发表于 2016-1-21 12:30 | 显示全部楼层
chengshanming 发表于 2016-1-21 10:27
赵老师上午好!经过大量数据测试,格式稍微修改,还是有以下小问题(如截图),标记栏查询条件圈内输入任 ...


Sub ADO法()
    t1 = Timer
    Dim cnn As Object, rs As Object, rst As Object, SQL$, Mypath$, MyFile$, s$, t$, a, arr, i&, v$
    Application.ScreenUpdating = False
    Dim objWMI As Object
    Const HKEY_LOCAL_MACHINE = &H80000002
    Set objWMI = GetObject("winmgmts:\\.\root\default:StdRegProv")
    arr = Range("A1:G2") '查询条件区域
    For i = 1 To UBound(arr, 2)
        If arr(2, i) <> "" Then t = t & " and " & arr(1, i) & "='" & arr(2, i) & "'"
    Next
    If t = "" Then Exit Sub
    t = Mid(t, 5)
    Range("A4:I" & Rows.Count).ClearContents '修改清除范围
    If Application.Version < 12 Then
        v = "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties='excel 8.0;imex=1';Data Source="
        objWMI.SetDWORDValue HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Jet\4.0\Engines\Excel", "TypeGuessRows", 0
    Else
        v = "Provider=Microsoft.ace.OLEDB.12.0;Extended Properties='excel 12.0;imex=1';Data Source="
        objWMI.SetDWORDValue HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Office\" & Application.Version & "\Access Connectivity Engine\Engines\Excel", "TypeGuessRows", 0
    End If
    On Error Resume Next
    Mypath = ThisWorkbook.Path & "\"
    MyFile = Dir(Mypath & "*.xls*")
    Do While MyFile <> ""
        If InStr(MyFile, ThisWorkbook.Name) = 0 Then
            Set cnn = CreateObject("adodb.connection")
            cnn.Open v & Mypath & MyFile
            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
                        Set rst = cnn.Execute("[" & s & "a1:a]") '数据源开始单元格位置
                        If Err.Number = 0 Then
                            If rst.Fields(0).Name = "组织" Then '更改起始字段
                             'SQL = "select * from [" & s & "a1:G8000] where" & t
                                SQL = "select 组织,成本域名称,料号,品名,规格,库存主单位名称,结存单价,'" & Replace(MyFile, ".xls", "") & "','" & Replace(s, "$", "") & "' from [" & s & "a1:G8000] where" & t '数据工作薄工作表查询范围设定
                                Set rst = cnn.Execute(SQL)
                                If Not rst.EOF Then Range("a" & Rows.Count).End(xlUp).Offset(1).CopyFromRecordset rst
                            End If
                        Else
                            Err.Clear
                        End If
                    End If
                End If
                rs.MoveNext
            Loop
        End If
        MyFile = Dir()
    Loop
    rs.Close
    Set rs = Nothing
    rst.Close
    Set rst = Nothing
    cnn.Close
    Set cnn = Nothing
    Application.ScreenUpdating = True
    MsgBox "耗时:" & Format(Timer - t1, "0.00") & "秒!" & Chr(10) & "共有“" & [a1048576].End(3).Row - 3 & "”条记录!", vbInformation, "完工"
End Sub

TA的精华主题

TA的得分主题

发表于 2016-1-21 12:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
单价查询.rar (47.02 KB, 下载次数: 161)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-22 11:31 | 显示全部楼层

赵老师好!另请教个问题。如何一个Excel薄从ERP中导出来文档有100M以上,数据行可能在10万条以上。能通过VBA代码,在不打开原工作薄情况下,就能将原薄中数据导出成TXT文件么?这个不好用附件说明。谢谢了,老师!

TA的精华主题

TA的得分主题

发表于 2016-1-22 12:05 | 显示全部楼层
chengshanming 发表于 2016-1-22 11:31
赵老师好!另请教个问题。如何一个Excel薄从ERP中导出来文档有100M以上,数据行可能在10万条以上。能通过 ...

不好理解,歉

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-25 10:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

赵老师,上午好!有个关于BOM材料计算的问题请教!如(截图)与附件,附件核算代码没有问题,只是我想在原基础上增加需求,代码需变更我不懂。谢谢老师了!
2016-01-25_100321.jpg

BOM cost.zip

71.43 KB, 下载次数: 47

TA的精华主题

TA的得分主题

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

本版积分规则

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

GMT+8, 2025-1-12 18:49 , Processed in 0.029516 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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