排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
数据查询并同步归类
数据查询并同步归类
VBA语言専攻
2022-06-16
117
【分享成果,随喜正能量】生活像本书,读出它的味道,还要讲究用一个更好的态度打开的方式,包容、柔软、善待和诚恳,愿意和生活去达成一种默契,愿意在生活里达成一种谅解。
。
《VBA数组与字典方案》教程是我推出的第三套教程,目前已经是第一版修订了。这套教程定位于中级,
字典是VBA的精华
,我要求学员必学。七、一、三、九组合套教程掌握后,可以解决大多数工作中遇到的实际问题。
这套教程共两册,一共八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:数据查询并同步归类
第三十五讲 工作表
查询时,实现按工作表数据归类
大家好,我们继续讲解VBA数组与字典解决方案,今日讲解第35讲内容:工作表查询时,结合数组,实现在工作表查询的同时,完成分工作表的归类汇总。今日的内容对于实际的工作非常重要,也是我根据实际的工作加工整理的一段代码。
1 实际问题的场景分析
实例问题:大家看下面的工作表数据截图,每型号产品是给不同的生产厂生产的,供货的是不同的供应商,那么问题来了,我要实现分供应商把各个型号进行汇总,同时把供应商的分别放置在不同的工作表中,如何实现呢?
我们先进行一下问题的分析:
1) 在数据处理前我们要知道有多个供应商,而且要清楚,这个数据是不固定的。
2) 要根据供应商的数目,插入工作表。
3) 要按照供应商的不同来提出数据。
看起来很复杂,但确实是我们的工作实例,如财务的工资表可以根据代码分部门;物流部门可以按此代码分供货商,销售部门可以按此代码进行客户的分类等。
2 问题的代码解决
下面看我提供的代码:
Sub MyNZsz_35() '第35讲 结合数组实现在工作表查询的同时,完成分工作表的归类汇总
Dim cnADO, rsADO As Object
Dim strPath, strSQL3, strSQL4 As String
Worksheets("35").Select
Cells.ClearContents
Set cnADO = CreateObject("ADODB.Connection")
strPath = ThisWorkbook.FullName
cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 12.0;hdr=yes;imex=1';data source=" & strPath
arr = cnADO.Execute("Select Distinct 供应商 From [数据备份$]").GetRows
For k = 0 To UBound(arr, 2)
strSQL = "Select 型号,数量,生产厂,单价 From [数据备份$] Where 供应商='" & arr(0, k) & "'" & " order by 型号"
ActiveWorkbook.Sheets.Add after:=Worksheets("数据备份")
ActiveSheet.Name = arr(0, k)
With Sheets(arr(0, k))
[A1:D1] = Array("型号", "数量", "生产厂", "单价")
.[A2].CopyFromRecordset cnADO.Execute(strSQL)
End With
Next
cnADO.Close
Set cnADO = Nothing
End Sub
代码截图:
代码讲解:
1) Arr = cnADO.Execute("Select Distinct 供应商 From [数据备份$]").GetRows
上述代码把供应商的名称排重后计入变体变量ARR,需要注意的是,这个ARR是个二维数组。
2) strSQL = "Select 型号,数量,生产厂,单价 From [数据备份$] Where 供应商='" & Arr(0, k) & "'" & " order by 型号"
上述代码实现了按供应商的名称提取数据。Arr(0, k)的数据即是供应商的名称
3)ActiveWorkbook.Sheets.Add after:=Worksheets("数据备份")
ActiveSheet.Name = Arr(0, k)
上述代码是把供应商的名称作为工作表的名称,在数据备份工作表之后插入。
下面看代码的运行:
我们看到新增了两个工作表,名称和供应商的一致,里面是我们需要提出的数据。
今日内容回向:
1 如何实现不确定数据的数据提取?
2 对于变体变量的数组是否清楚呢?
我20多年的VBA实践经验,全部浓缩在下面的各个教程及各类工具中:
【分享成果,随喜正能量】人生无常,高处有高处的风光,低处有低处的磨砺,及时调整自我去适应变化,人生才能在突破中走向宽广。
。
大数据
数据备份
arr
供应商
文章转载自
VBA语言専攻
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨