推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

《VBA信息获取与处理》教程:让自己的心保持柔软

   2023-06-17 网络整理佚名1740
核心提示:将工作表数据写入VBA数组读取工作表上的范围并将其放入数组在VBA中,可以直接读取工作表上的范围并将其放入数组,这种方法非常简单。利用上述方案将工作表中的数据引入VBA数组后,我们要注意该数组始终是二维的。加载工作表数据的数组始终具有等于1的下限(),而不管模块中可能具有什么选项基指令。本节知识点回向:读取指定范围的数据到数组有哪些方法可以利用?读取后的数组是几维数组?

【分享成果,正能量随喜】保持内心柔软,力量不在刚而在柔,能伸能弯的树才能经得起大风,为自己打造灵动的头脑。 生活是美好的,很多事情都出乎我们的意料,一味的抗拒并不能解决问题,我们需要的是一颗无限柔软真诚的心。

《VBA信息获取与处理》教程是我推出的第六套教程,目前是第一次修订。 这套教程定位于最高层次,是初中级之后的教程。 本教程内容为:跨应用程序信息获取、随机信息利用、邮件发送、VBA互联网数据抓取、VBA延时操作、剪贴板应用、Split功能扩展、工作表信息与其他应用程序交互、FSO对象的利用、获取工作表和文件夹信息,图形信息的获取,自定义工作表信息功能等。程序文件通过了32位和64位系统测试。 非常抽象,更有研究价值。

课程共两册,八十四讲。今天的内容是第四讲《EXCEL工作表数据的读取、回填和查找》第二讲:如何将工作表数据赋值给数组

第二节将工作表数据写入VBA数组

在上一节中,我们讲了几种实现工作表数据与VBA代码之间传递的方法。 在本讲中,我们将重点介绍如何将工作表数据写入数组。

1 读取工作表上的范围并将其放入数组

在VBA中,可以直接读取工作表上的范围,将其放入一个数组中,这种方法非常简单。 例如,

调暗 Arr() 作为

Arr = Range("A1:C5")

在上面的代码中,首先声明了一个变量变量数组变量,然后将这个变量指向指定的区域。 如果我们不能确定这个区域的大小,或者这个区域是可变的,我们可以使用下面的语句;

① myarr = ("41").

② myarr = ("40").[a1]。

③ myarr = Range("a2:c" & Range("c2").End().row)

④ myarr = Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).row)

⑤ myarr = Range("a2:f" & [].End(xlUp).Row)

⑥ = 范围([A2], [].End(xlUp))

以上各种写法是我在第三套教程《VBA数组与字典解法》中的一些实际写法。 第一种表示整个工作表的使用区域,第二种是从“A1”单元格开始第三种是代表A2到C列最后一个非空单元格的矩形区域,第四种是A列中使用的区域(包括空格),第五种是A2到F列最后一个单元格使用的单元格范围(适用于低版本的excel),第六种是列中第二个单元格下使用的范围A(包括空单元格)

2 读取工作表上的指定范围,得到数组维数的确认

使用上述方案将工作表中的数据导入VBA数组后,需要注意的是数组始终是二维的。 第一个维度是行,第二个维度是列。 因此,下面的例子:

调暗 Arr() 作为

Arr = Range("A1:C5")

Arr 隐式调整为 Arr(1 到 5, 1 到 3),其中 5 是行数,3 是列数。 即使工作表数据在一行或一列中,也创建一个二维数组(例如,Arr(1 到 10, 1 到 1))。 载有工作表数据的数组始终具有等于 1 的下限 (),无论您在模块中可能有什么选项基本指令。 您无法更改此行为。 例如:

调暗 Arr() 作为

Arr = Range("A1:A10")

这里,Arr 被 VBA 自动标记为 Arr(1 to 10, 1 to 1)。 您可以使用如下代码循环遍历工作表值数组:

子 MYNZC()

调暗 Arr() 作为

Arr = Range("A1:B10")

昏暗的R一样长

昏暗的C一样长

For R = 1 To (Arr, 1) ' 数组的第一维表示行。

for C = 1 To (Arr, 2) '数组的第二个维度表示列

调试。 打印Arr(R,​​ C)

下一个

下一个

结束子

代码截图:

代码的操作:

3 当工作表上指定区域为单元格时

在向数组中引入指定范围的数据时,我们经常会遇到一种特殊情况,即只有一个单元格。 这时候往往会用到上面的方法报错。 有时是数组赋值错误,有时是数组。 下标和下标报错,要看具体的代码应用。 应该如何处理这个错误? 我们可以使用下面的代码:

Sub MYNZD() '当工作表上的区域是单个单元格时

调暗排列为

("")..

m = .Cells.Count

如果 m = 1 那么

ReDim Arr(1 对 1, 1 对 1)

排列 (1, 1) = ("").

排列 (1, 1)

别的

安排=(“”)。

排列 (1, 1)

万一

结束子

代码截图:

上面的代码成功避免了这个错误。 大家在使用这个数组赋值的时候都避免了这样的错误。

回到本节知识点: 可以用什么方法将指定范围内的数据读入数组? 读取数组是多少维数组? 如何避免指定区域只有一个单元格的情况?

本题参考程序文件:004 .XLSM

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

① 7→1→3→2→6→5或7→4→3→2→6→5。

② 7→8

每套课程内容介绍:

第七套教程(共三册):《VBA EXCEL应用》:VBA基础讲解

第一套教程(共三册):《VBA代码解答》:入门后的提升教程

第四套教程(16G):VBA代码解题视频(第一套视频讲解)

第三套教程(共两册):《VBA数组与字典解法》:数组与字典的专题讲解

第二套教程(共两册):《VBA数据库解决方案》:数据库专题讲解

第六套教程(共两册):《VBA信息获取与处理》:详解VBA的网络与跨程序应用

第五套教程(共两册):VBA中类的解释与利用:类与接口技术详解

第八套教程(共三册):VBA的Word应用(最新教程):VBA在word中的使用

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON