ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 取唯一,最后一笔数值

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-30 09:32 | 显示全部楼层
改一下STRSQL
image.png

limonet.zip

25.6 KB, 下载次数: 5

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-30 09:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub limonet()
    Dim Cn As Object, StrSQL$
    Set Cn = CreateObject("Adodb.Connection")
    Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.Path & "\SHIPP.xls"
    StrSQL = "Select 選項號碼 As 選項號碼,Last(料號) As 料號,Last(品名) As 品名 From [石中$E:K] Group By [選項號碼]"
    StrSQL = "Select 料號,品名 From [Excel 12.0;DataBase=" & ThisWorkbook.FullName & "].[Sheet1$G:G]a Left Join (" & StrSQL & ")b On a.選項號碼=b.選項號碼"
    Range("H2").CopyFromRecordset Cn.Execute(StrSQL)
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-30 10:27 | 显示全部楼层
limonet 发表于 2024-3-30 09:33
Sub limonet()
    Dim Cn As Object, StrSQL$
    Set Cn = CreateObject("Adodb.Connection")

谢谢大哥...
我的是修成SELECT a.*, b.料号,b.品名 FROM...
看起来你的比较简洁又方便,谢谢

TA的精华主题

TA的得分主题

发表于 2024-3-30 10:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
cmo9020 发表于 2024-3-30 10:27
谢谢大哥...
我的是修成SELECT a.*, b.料号,b.品名 FROM...
看起来你的比较简洁又方便,谢谢

你加了a与b,更保险。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-30 21:06 | 显示全部楼层
本帖最后由 cmo9020 于 2024-3-30 21:08 编辑
limonet 发表于 2024-3-30 10:30
你加了a与b,更保险。

大哥...
剩下一个问题请教一下
同时查询读取2个档案簿数据
1.SHIPP
2.scrap
试了很多次,当在执行读取第2个scrap工作簿数据时,它会把第1个的查询结果清空...
请问这要怎么解决?谢谢大哥指导一下~

limonet.rar (31.76 KB, 下载次数: 4)

擷取.JPG

TA的精华主题

TA的得分主题

发表于 2024-3-30 21:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这几天还在学,试试
Range("H"& range("h65536").end(xlup).row+1).CopyFromRecordset Cn.Execute(StrSQL)

TA的精华主题

TA的得分主题

发表于 2024-3-30 21:49 | 显示全部楼层
本帖最后由 shiruiqiang 于 2024-3-30 21:50 编辑
cmo9020 发表于 2024-3-30 21:06
大哥...
剩下一个问题请教一下
同时查询读取2个档案簿数据
近期努力在学sql
image.jpg

limonet 2.rar

32.3 KB, 下载次数: 1

评分

1

查看全部评分

TA的精华主题

TA的得分主题

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

大哥~我是指同时读取2个档案里面数据
SHIPP.xls+scrap.xls

下面代码执行后他会覆盖到第1个读取变空白
试了很多方法...弄不出来

Sub limonet()
    Dim Cn1 As Object, Cn2 As Object, StrSQL$
    Set Cn1 = CreateObject("Adodb.Connection")
    Cn1.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.Path & "\SHIPP.xls"
    Set Cn2 = CreateObject("Adodb.Connection")
    Cn2.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.Path & "\scrap.xls"

    StrSQL = "Select 选项号码 As 选项号码, Last(料号) As 料号, Last(品名) As 品名 From [石中$E:K] Group By [选项号码]"
    StrSQL1 = "Select 料号, 品名 From [Excel 12.0;DataBase=" & ThisWorkbook.FullName & "].[Sheet1$G:G]a Left Join (" & StrSQL & ")b On a.选项号码=b.选项号码"
    StrSQL2 = "Select 料号, 品名 From [Excel 12.0;DataBase=" & ThisWorkbook.FullName & "].[Sheet1$G:G]a Left Join (" & StrSQL & ")b On a.选项号码=b.选项号码"

    Range("H2").CopyFromRecordset Cn1.Execute(StrSQL1)
    Range("H2").CopyFromRecordset Cn2.Execute(StrSQL2)
    Cn1.Close
    Cn2.Close
End Sub

TA的精华主题

TA的得分主题

发表于 2024-3-30 22:45 | 显示全部楼层
关键字:union all
GIF 2024-03-30 22-44-06.gif

limonet.zip

34.63 KB, 下载次数: 3

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-30 22:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
更多文件也可以
Sub limonet()
    Dim Cn As Object, StrSQL$, Path$, FileName$
    Set Cn = CreateObject("ADODB.Connection")
    Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
    Path = ThisWorkbook.Path & "\"
    FileName = Dir(Path & "*.xls")
    Do While FileName <> ""
        If FileName <> "Limonet.xlsm" Then
            StrSQL = StrSQL & " Union All Select 選項號碼 As 選項號碼,Last(料號) As 料號,Last(品名) As 品名 From [Excel 12.0;DataBase=" & Path & FileName & "].[石中$E:K] Group By [選項號碼]"
        End If
        FileName = Dir
    Loop
    StrSQL = "Select 料號,品名 From [Sheet1$G:G]a Left Join (" & Mid(StrSQL, 12) & ")b On a.選項號碼=b.選項號碼"
    Range("H2").CopyFromRecordset Cn.Execute(StrSQL)
End Sub

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 08:40 , Processed in 0.037073 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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