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

张开发
2026/4/17 9:51:54 15 分钟阅读

分享文章

数组与字典解决方案第三十六讲  将记录集赋值给数组以及转置的利用
《VBA数组与字典方案》教程10144533是我推出的第三套教程目前已经是第二版修订了。这套教程定位于中级字典是VBA的精华我要求学员必学。7.1.3.9教程和手册掌握后可以解决大多数工作中遇到的实际问题。这套字典教程共两册一共八十四讲今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是数组与字典解决方案第三十六讲 将记录集赋值给数组以及转置的利用【分享成果随喜正能量】凡是经不起时光沉淀的生命喧嚣都不算伤痛更不算创伤它就是像浮云片片来了去了如果你心大点它既不是来也不是去它就是一片风景。第三十六讲 将记录集赋值给数组以及转置的利用大家好,今日继续讲解VBA数组与字典解决方案第36讲,内容是:将记录集赋值给数组后利用转置函数处理多维数组的方法。我在之前的讲解中我讲了将记录集存入数组的方案并通过一个Index函数在工作表中恢复数组数据的方法。今日讲的是利用转置函数来完成同样的功能。1 实际问题的场景分析实例讲解我们有下面的工作表数据我要首先把上述的数据的工作表利用ADO连接打开然后将打开的记录集数据赋值给数组最后将数组的数据在工作表中显示出来。2 解决问题的代码方案为什么要讲这个方法呢确实我们可以在工作表中可以直接显示记录集的数据但数组的功能强大我们必须要掌握这个知识点的讲解。下面看我给出的代码Sub MyNZsz_36() 第36讲 记录集赋值给数组后利用转置函数处理多维数组的方法Dim cnADO As Object, rsADO As ObjectDim strPath As String, strSQL As StringDim myData() As VariantDim myTitle() As VariantWorksheets(36).SelectCells.ClearContentsSet cnADO CreateObject(ADODB.Connection)Set rsADO CreateObject(ADODB.Recordset)strPath ThisWorkbook.FullName......rsADO.Open strSQL, cnADO, 1, 3myTitle Array(员工编号, 姓名, 年龄)myData rsADO.GetRows(-1, 1, myTitle)Range(a1:C1) myTitleRange(a2).Resize(UBound(myData, 2) 1, UBound(myData) 1) Application.Transpose(myData)rsADO.ClosecnADO.CloseSet rsADO NothingSet cnADO NothingEnd 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实践经验全部浓缩在以下教程中

更多文章