当前位置: 首页 > news >正文

数组与字典解决方案第三十六讲 将记录集赋值给数组以及转置的利用

《VBA数组与字典方案》教程(10144533)是我推出的第三套教程,目前已经是第二版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。7.1.3.9教程和手册掌握后,可以解决大多数工作中遇到的实际问题。

这套字典教程共两册,一共八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:数组与字典解决方案第三十六讲 将记录集赋值给数组以及转置的利用

【分享成果,随喜正能量】凡是经不起时光沉淀的生命喧嚣,都不算伤痛,更不算创伤,它就是像浮云片片,来了去了,如果你心大点,它既不是来也不是去,它就是一片风景。

第三十六讲 将记录集赋值给数组以及转置的利用

大家好,今日继续讲解VBA数组与字典解决方案第36讲,内容是:将记录集赋值给数组后,利用转置函数处理多维数组的方法。我在之前的讲解中,我讲了将记录集存入数组的方案,并通过一个Index函数在工作表中恢复数组数据的方法。今日讲的是利用转置函数来完成同样的功能。

1 实际问题的场景分析

实例讲解,我们有下面的工作表数据,

我要首先把上述的数据的工作表利用ADO连接打开,然后将打开的记录集数据赋值给数组,最后将数组的数据在工作表中显示出来。

2 解决问题的代码方案

为什么要讲这个方法呢?确实,我们可以在工作表中可以直接显示记录集的数据,但数组的功能强大,我们必须要掌握这个知识点的讲解。

下面看我给出的代码:

Sub MyNZsz_36() '第36讲 记录集赋值给数组后,利用转置函数处理多维数组的方法

Dim cnADO As Object, rsADO As Object

Dim strPath As String, strSQL As String

Dim myData() As Variant

Dim myTitle() As Variant

Worksheets("36").Select

Cells.ClearContents

Set cnADO = CreateObject("ADODB.Connection")

Set rsADO = CreateObject("ADODB.Recordset")

strPath = ThisWorkbook.FullName

......

rsADO.Open strSQL, cnADO, 1, 3

myTitle = Array("员工编号", "姓名", "年龄")

myData = rsADO.GetRows(-1, 1, myTitle)

Range("a1:C1") = myTitle

Range("a2").Resize(UBound(myData, 2) + 1, UBound(myData) + 1) = Application.Transpose(myData)

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代码截图:

代码讲解:

1) 上述的过程中首先打开一个用ADO连接,然后打开记录集,并将记录集赋值给数组,最后在工作表中还原数组。

2) myTitle = Array("员工编号", "姓名", "年龄")

myData = rsADO.GetRows(-1, 1, myTitle)

上述语句中在记录集中按myTitle数组的格式,讲记录集赋值给myData,要注意的是myData要是变体变量。

3) Range("a2").Resize(UBound(myData, 2) + 1, UBound(myData) + 1) = Application.Transpose(myData)

上述语句中UBound(myData, 2) 获得myData的第2维数的最大数值;UBound(myData) 获得myData的第1维数的最大数值.用Resize()函数扩展了工作表区域;Transpose(myData)将数组myData转置后填入区域。

下面看代码的执行结果:

今日内容回向:

1 如何将记录集的数据赋值给数组?

2 转置函数是如何利用的?

我多年的VBA实践经验,全部浓缩在以下教程中:

http://www.jsqmd.com/news/578684/

相关文章:

  • OpenClaw隐私保护方案:Qwen3-14B本地处理敏感数据
  • FileConfig嵌入式配置管理库:轻量级INI解析与SD卡持久化方案
  • 什么是事务?事务的生命周期,四大属性(ACID重要)
  • SLB和Azule Energy扩大企业数字化运营规模以强化安哥拉能源供应
  • 写完论文才发现:原来好写作AI才是本科毕业的“隐藏外挂”
  • 数学专业考CDA数据分析师证书值不值?适合哪些求职方向和岗位
  • 50万行源码意外泄露:Anthropic“翻车”给AI开发者敲响了什么警钟?
  • 详解Kadane算法(附C++实现)—— 一维最大子段和最优解法
  • 破解非标设计人才供需错配:苏州非标机械设计培训机构如何通过3+1全链路实战方法论实现高质量就业? - 博客湾
  • 为什么某系统我们没有源代码,却比有源代码的高级工程师更能看透这个系统
  • 嵌入式ONPS协议栈:轻量级TCP/IP实现与优化
  • 剑指offer-19、顺时针打印矩阵
  • 当 AI 开始自己写代码,我更在意的是它到底做了什么
  • OpenClaw多模型切换实战:千问3.5-35B-A3B-FP8与文本模型的协作流程
  • 低成本自动化:OpenClaw+Gemma-3-12b-it替代Zapier的5个场景
  • ASA5545防火墙引入路由
  • 10个数字的冒泡排序魔法
  • 三次转身 一生向光:江俊在社群团购的路上奔跑 - 博客湾
  • 卸载Postman:ChatGPT调试API的致命效率
  • OpenClaw文件管理革命:Qwen3.5-9B智能分类与重命名方案
  • Go Channel 缓冲区机制分析
  • 十款GitHub中文爆款项目推荐,马上收藏使用,关注日常更新爆款项目
  • SEO_网站SEO排名下降的五大原因及应对技巧
  • VS Code 安装插件显示 Mermaid 渲染图完整手顺
  • 火山引擎做平台,易元AI做“应用”——谁更适合电商老板?
  • 矩阵是一种常见的二维数据结构,类似于一张表格
  • 数字IC设计的未来:ChatGPT能否颠覆十大核心领域?
  • 家庭实验室必备:OpenClaw监控路由器日志并告警
  • SEO 网站结构优化技巧是什么
  • 第 1 章 Python 基础 知识点精讲