vba抓取网页数据(《VBA信息获取与处理》教程之EXCEL工作表数据的读取、回填和查找)
优采云 发布时间: 2022-01-16 07:07vba抓取网页数据(《VBA信息获取与处理》教程之EXCEL工作表数据的读取、回填和查找)
【分享成果,用正能量欢欣鼓舞】人生的真谛,就是用简单客观的态度去解决人生需要面对的诸多问题,去应对那些复杂的纠葛、懦弱的悲哀,让生活成为一种和谐和谐,培养一种不随*敏*感*词*。俗话说得好,眼界开阔,人生幸福之禅。
《VBA信息获取与处理》教程是我推出的第六套教程,目前是第一次改版。这套教程定位在最高级的水平。这是针对初学者和中级的教程。本教程将为大家讲解:跨应用信息获取、随机信息的使用、邮件发送、VBA上网数据抓取、VBA延时操作、剪贴板应用、Split功能扩展、工作表信息等应用交互、FSO对象的使用、工作表和文件夹信息的获取,图形信息的获取,以及自定义工作表信息功能等。程序文件在32位和64位OFFICE系统上都进行了测试。它非常抽象,具有更多的研究价值。
本课程由两卷八十四讲组成。今天的内容是专题4《EXCEL工作表数据的读取、回填和查找》第1讲:数据存储与代码操作时间对比
第 1 节 工作表数据和数组之间的传输比较
工作表单元格数据和 VBA 变量之间的数据传输是一种经常应用的操作。此操作比其他操作花费更多时间,因此我们的原则是将此操作保持在最低频率。通过一次操作(而不是对单元格的一次操作)将数据传递到数组,或将数组数据传递到工作表,可以大大提高 Excel 应用程序的性能。一般规则是:如果你需要对VBA中的数据做大量的计算,你应该将工作表中的所有值转移到一个数组中,对数组进行计算,然后用数组回填工作表可能被利用的数据。这样的操作将工作表和 VBA 之间的传输次数保持在最低限度。例如,
我们在VBA中处理数据时,一般有三种选择和使用,一种是将数据存储在数组中,另一种是将数据存储在字典中,第三种不是在内存中处理,而是读取和直接在工作表中处理。
1 将工作表数据存储在数组中,在内存中处理数据
我们先解释一下上面的第一种方案,就是将工作表数据存储在一个数组中,然后在内存中处理数据。为了验证处理的效果,我们在工作表中给出2000条数据,然后先将这些数据读入数组,然后在数组中求和,我们看下面的代码:
Sub MYNZ() '数组求和
t = 定时器
工作表(“SHEET1”)。选择
Dim Arr() 作为变体
Arr = 范围(“A1:A2000”)
总和 = 0
对于 R = 1 到 UBound(Arr, 1)
MYSUM = MYSUM + Arr(R, 1)
下一个
t2 = 定时器 - t
MsgBox "总和是:" & MYSUM & Chr(13) & "运行时间:" & Format(t2, "0.00000") & "秒"
结束子
代码截图:
这些代码对于中级以上的朋友来说非常容易理解,只是思路问题。代码不再解释。
看看下面的运行结果:
运行结果:
2 将工作表数据存储在字典中,处理内存中的数据
我们来解释一下上面的第二种方案,即将工作表数据存储在字典中,然后在内存中处理数据。为了验证处理的效果,我们也在工作表中给出同样的2000条数据,然后先将这些数据读入字典,然后计算总和,我们看下面的代码:
Sub MYNZA() '字典求和
t = 定时器
工作表(“SHEET1”)。选择
Dim Arr() 作为变体
Arr = 范围(“A1:A2000”)
设置 myDic = CreateObject("scripting.dictionary")
对于 i = 1 到 UBound(Arr)
myDic(i) = Arr(i, 1) '初始化字典
MYSUM = MYSUM + myDic(i)
接下来我
t2 = 定时器 - t
MsgBox "总和是:" & MYSUM & Chr(13) & "运行时间:" & Format(t2, "0.00000") & "秒"
结束子
代码截图:
运行代码的结果:
3 直接在工作表中处理数据
最后,我们来解释一下上面的第三种方案,直接在工作表中处理数据。为了验证处理的效果,我们也在工作表中给出同样的2000条数据,然后在工作表中直接计算这些数据。和处理,我们看下面的代码:
Sub MYNZB() '工作表总和
t = 定时器
我 = 1
工作表(“SHEET1”)。选择
总和 = 0
Do While Cells(i, 1) ""
MYSUM = MYSUM + 单元格(i, 1)
我 = 我 + 1
环形
t2 = 定时器 - t
MsgBox "总和是:" & MYSUM & Chr(13) & "运行时间:" & Format(t2, "0.00000") & "秒"
结束子
代码截图:
运行代码:
我们看一下数据的运行结果,可以看出运行的效率,但是要提醒大家注意:
①不要一味追求效率,注意看懂我的文章文章《VBA程序运行时优化与视觉效果》。
② 每个方案都有自己的可用价值。例如,字典的排序是一种非常有效的方法。
回到本节的知识点:实现工作表和VBA之间的数据传输有哪些解决方案?每个是什么?请根据自己的经验仔细了解每个选项的优缺点。
本主题的参考程序文件:004 Worksheet.XLSM
我20多年的VBA实践经验,全部浓缩在以下教程中,教程学习顺序:
① 7→1→3→2→6→5或7→4→3→2→6→5。
② 7→8
各套课程内容介绍:
第7套教程(共三册):《VBA的EXCEL应用》:VBA基础讲解
第一套教程(共三册):《VBA代码解决方案》:入门后的改进教程
第四套教程(16G):VBA代码解决视频(第一套视频讲解)
第三套教程(共两册):《VBA数组与字典解法》:数组与字典的特别讲解
第二套教程(共两册):《VBA数据库解决方案》:是对数据库的专门讲解
第六套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络和跨程序应用
第五套教程(两册):VBA中类的解释与利用:类与接口技术讲解
第8套教程(共三册):VBA的Word应用(最新教程):VBA在word中的使用