vba 网页数据抓取(,信息获取与处理中的部分内容,这套数组存储数据 )

优采云 发布时间: 2022-03-04 20:04

  vba 网页数据抓取(,信息获取与处理中的部分内容,这套数组存储数据

)

  大家好,最近上线的内容是《VBA信息获取与处理》的一部分。本套教程面向中高级人员,覆盖面更广,实用性更强。现在内容是第四期《Excel工作表数据的读取、回填和查找》。本期我们讲解工作表数据的处理。对于VBA,我给的定位是“自动化处理个人小数据的强大工具” ”。对于大部分朋友来说,VBA的使用是和EXCEL相关联的。很多代码也是用来处理EXCEL或相关的各种数据,而工作表作为与用户交互的对象存在,那么如何查找和读取工作表的数据是一个非常关键的话题。我们将主要讨论这个问题。

  第1节工作表数据与数组的传输比较

  工作表单元格和 VBA 变量之间的数据传输是一种经常应用的操作。此操作比其他操作花费更多时间,因此我们的原则是将此操作保持在最少的次数。在单个操作(而不是单个单元格操作)中将数据传递到数组,或将数组数据传递到工作表,可以大大提高 Excel 应用程序的性能。一般规则是:如果需要对 VBA 中的数据进行大量计算,则应将工作表中的所有值转移到数组中,对数组进行计算,然后将可能被利用的数据回填到工作表中。数组数据。这样的操作将工作表和 VBA 之间的传输次数保持在最低限度。例如,一次将 100 个数组数据传输到工作表比传输 100 次、一次一个数据值要高效得多。我们在VBA中处理数据的时候,一般有三个选项可以选择和使用,一个是将数据存储在数组中,另一个是将数据存储在字典中,第三个不是在内存中处理,而是读取并直接在工作表中处理。

  1

  将工作表数据存储在数组中,在内存中处理数据

  我们先解释一下上面的第一种方案,就是将工作表数据存储在一个数组中,然后在内存中处理数据。为了验证处理的效果,我们在worksheet中给出2000条数据,然后先将数据读入数组,再计算数组中的和。我们来看下面的代码: Sub MYNZ() t = Timer Sheets("SHEET1").Select Dim Arr() As Variant Arr = Range("A1:A2000") MYSUM = 0 For R = 1 To UBound(Arr, 1) MYSUM = MYSUM + Arr(R,​​ 1) Next t2= Timer - t MsgBox "总和为:" & MYSUM & Chr(13) & "运行时间:" & Format(t2, "0.00000") & "Seconds" 结束子代码截图:

  

  这些代码对于中级以上的朋友来说非常容易理解,只是思路问题。代码不再解释。看看下面的结果:

  

  运行结果:

  

  2

  将工作表数据存储在字典中并在内存中处理数据

  我们来解释一下上面的第二种方案,即将工作表数据存储在字典中,然后在内存中处理数据。为了验证处理的效果,我们在工作表中也给出了相同的 200 0。然后先将数据读入字典,然后求和,我们看下面的代码: Sub MYNZA() t = Timer Sheets("SHEET1").Select Dim Arr() As Variant Arr = Range("A1: A2000") Set myDic = CreateObject("scripting.dictionary") For I = 1 To UBound(Arr) myDic(I)= Arr(I, 1) '初始化字典 MYSUM= MYSUM + myDic(I ) Next I t2 = Timer - t MsgBox "Sum is:" & MYSUM & Chr(13) & "Runtime:" & Format(t2, "0.00000") & "Seconds" 结束子代码截图:

  

  代码运行结果:

  

  3

  直接在工作表中操作数据

  最后我们来解释一下上面的第三种方案,直接在工作表中处理数据。为了验证处理的效果,我们也在worksheet中给出了同样的2000条数据,然后直接在worksheet中对这些数据求和,我们看下面的代码: Sub MYNZB() t = Timer I = 1 Sheets ("SHEET1").Select MYSUM = 0 Do While Cells(I, 1) "" MYSUM = MYSUM + Cells(I, 1) I = I + 1 Loop t2 = Timer - t MsgBox "Sum is:" & MYSUM & Chr(13) & "Runtime:" & Format(t2, " 0.00000") & "seconds" 结束子代码截图:

  

  运行代码:

  

  我们看一下数据的运行结果,可以看出运行的效率,但要提醒大家注意:①不要盲目追求效率,注意看懂我的文章文章@ > 《VBA程序运行时间优化》和视觉效果。” ②每个方案都有自己的使用价值,比如字典排序就是一个很有效的方法。回到本节知识点:有哪些解决方案可以实现工作表和 VBA 之间的数据传输?各自是什么?根据自己的经验仔细了解每个选项的优缺点。此主题的参考程序文件:00 4 工作表。XLSM VBA 是使用 Office 的有效手段实现自己的小型办公自动化,这就是我对VBA应用的定义。在新办公软件取代OFFICE之前,谁能把数据处理做到极致,谁才是王道。其中,技能的巅峰莫过于VBA !学习VBA是一个过程,也需要体验一种枯燥的感觉,比如太白的诗:百鸟高飞,孤云去闲。相见不厌,唯有敬亭山。 “水无争,万物皆好。”学习也是如此,知道自己需要什么,不蜷缩在世界的一小块认为自己是天堂的地方,以及自欺欺人的言论直到年老。努力提高自己,以充满活力的精神把握现在,这就是进步。越有意义的事情,就越难。意愿决定一切,智慧决定成败。

  无论遇到什么,都是一道风景。看不起纠纷,看不起得失。不管是满的还是小的,都不愁茶;不管是浓还是淡,都有自己值得品尝的味道。感受真实的时间,静下心来,多了解,积福报。与其天天闹着玩,不如天天过日子。在杀鸡更严重的后疫情世界,储备知识,尤其是新知识,为自己生存。学习时是渺小而无声的,使用时是巨大而汹涌的。记得20年前第一次学VBA的时候,当时资料很少,只能看源码搞清楚,真的很难。 20年过去了,为了不让学VBA的朋友重复我之前的经历,我结合自己多年的VBA实践经验,推出了六篇VBA专用教程。第一套:VBA代码解决方案是对VBA中各种知识点的讲解,涵盖了大部分VBA知识点,初学者必备;第二套:VBA数据库解决方案 数据库是一种专业的数据处理工具,教程中详细介绍了使用ADO连接ACCDB和EXCEL的方法和示例操作,适合中级人员学习。第三套:VBA数组和字典解决方案数组和字典是VBA的精髓,字典是提高VBA代码水平的有效手段。第四套:VBA代码解决方案视频,是给初学者的视频讲解,可以快速上手,更快掌握这个技能。

  Set 5:VBA中类的解释和利用这是一门高级课程,解释了类的空性和物理性的程度。虽然类的使用较少,但认真学习可以促进自身VBA理论的提高。第六套教程:《VBA信息获取与处理》,这是一个高级教程,涵盖范围更广,实用性更强,面向中高级人员。教程共有20个主题,*敏*感*词*平和的心态。在码字的世界里,心静,心情好,身体自然就好。当心平静时,它是正义的。心中没有那么多的邪见邪见,也没有那么多的妄想。利益他人就是利益自己。这些教程也是为了帮助你起航,帮助我。我上面的教程是我经验的转移。可以使用上面的信息 1,3,2,6,5 或者 4,3,2,6 ,5的顺序是逐渐加深,逐渐学会的。每一次收获都是成长的记录。怎么可能没有证据?正是这种执着,让晨曦绽放出灿烂的光芒。最后,给致力于VBA学习的朋友一句话,让大家感受一下学习过程的平淡和执着:乌云掠过,暗语无声,唯有微风,惊动了林中的莺梦。仰望星空,疏散北斗七星,奈将与雁同行过去。黔外人,灯火昏暗,忍着长亭。有多少VBA人,在漆黑的夜里,默默的追寻梦想,却期待着黎明。多么不合理!分享成果,为正能量欢欣鼓舞

  更多相关阅读

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线