vba 网页数据抓取(第四节将VBA数组写入工作表时转置(Transpose)的利用)

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

  vba 网页数据抓取(第四节将VBA数组写入工作表时转置(Transpose)的利用)

  大家好,最近推出的内容是“VBA信息获取与处理”的一部分。本套教程面向中高级人员。覆盖范围更广,更实用。现在的内容是第四个主题“EXCEL工作表“数据的读取、回填和搜索”。

  第四节将VBA数组写入工作表时使用转置(Transpose)

  转置是数组应用中经常用到的一个知识点。在使用Excel表格的过程中,当我们想将水平行变成垂直列(或者将垂直数据切换成水平排列)时,我们希望将前后两个排列不同的数据相互关联时,转置函数可以使用。但需要注意的是,这个函数是一个工作表函数,所以在使用这个函数时必须使用Application.Transpose(Arr)。

  1 用一维数组回填工作表时的转置(Transpose)

  如果需要按列回填一维数组,可以使用如下语句:MyRange.Value = Application.Transpose(Arr)

  具体代码如下:

  Sub MYNZG() '一维数组数据的转置回填方案

  将 Arr 变暗为变体

  将 MyRange 调暗为范围

  工作表(“SHEET4”)。选择

  Arr = 数组(“大象”、“老虎”、“狮子”、“狐狸”)

  设置 MyRange = Range("A1")

  设置 MyRange = MyRange.Resize(UBound(Arr) + 1, 1)

  MyRange.ClearContents

  MyRange.Value = Application.Transpose(Arr)

  消息框“好的!”

  结束子

  代码截图:

  

  代码说明:这里需要注意的是,引用单元格区域的扩展语句变为: Resize(UBound(Arr) + 1, 1) 这是列的扩展,所以转置语句对应Application.Transpose (Arr). 这里要注意的一点是resize参数取反了。

  2 用二维数组回填工作表时的转置(Transpose)

  如果需要按列回填二维数组,可以使用如下语句:MyRange.Value = Application.Transpose(Arr)

  具体代码如下:

  Sub MYNZH() '二维数组数据的转置回填方案

  将 Arr 变暗为变体

  将 MyRange 调暗为范围

  工作表(“SHEET4”)。选择

  Arr = Sheets("SHEET2").Range("A1:b9")

  设置 MyRange = Range("A1")

  设置 MyRange = MyRange.Resize(UBound(Arr, 2), UBound(Arr, 1))

  MyRange.ClearContents

  MyRange.Value = Application.Transpose(Arr)

  消息框“好的!”

  结束子

  代码截图如下:

  

  代码说明:当从工作表中读取数组变量时,VBA会自动调整数组的大小以保持工作表上的范围,所以你不必关心数组的大小。但是,在将数组从 VBA 写入工作表时,必须调整目标区域的大小以适应数组。我们在前面的例子中已经看到了这一点。

  如果传递给工作表的数组小于它写入的范围,则未使用的单元格将出现“#N/A”错误。如果传递的数组大于它写入的范围,则数组将在右侧或底部截断以适应范围。

  回到本节知识点:如何理解换位?如何使用一维数组和二维数组转置?

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

  VBA是使用Office实现自己的小型办公自动化的有效手段,这就是我对VBA应用的定义。在取代OFFICE的新办公软件出现之前,谁能在数据处理上做到极致,谁就是王者。技巧的巅峰莫过于VBA!学习VBA是一个过程,也需要体验一种枯燥的感觉,比如太白的诗:百鸟高飞,孤云去闲。相见不厌,唯有敬亭山。

  “水无争,万物皆好。” 学习也是如此,知道自己需要什么,不蜷缩在一个认为自己是天堂的世界里,说自欺欺人的言论直到年老。努力提高自己,以充满活力的精神把握现在,这就是进步。越有意义的事情,就越难。意愿决定一切,智慧决定成败。无论遇到什么,都是风景。看不起纠纷,看不起得失。不管是满的还是小的,都不愁茶;不管是浓还是淡,都有自己值得品尝的味道。感受真实的时间,静下心来,多了解,积福报。与其天天闹着玩,不如天天过日子。在杀鸡更严重的后疫情世界,储备知识,尤其是新知识,为自己生存。学习时是渺小而无声的,使用时是巨大而汹涌的。

  记得20年前第一次学VBA的时候,当时资料很少,只能看源码搞清楚,真的很难。二十年过去了。为了不让学VBA的朋友重复我之前的经历,我结合自己多年的VBA实践经验,推出了六篇VBA专题教程。

  第一套:VBA代码解决方案是对VBA中各种知识点的讲解,涵盖了大部分VBA知识点,初学者必备;

  第二套:VBA数据库解决方案 数据库是专业的数据处理工具。教程中详细介绍了使用ADO连接ACCDB和EXCEL的方法和示例操作,适合中级学习。

  第三套:VBA数组和字典解决方案数组和字典是VBA的精髓,字典是提高VBA代码水平的有效手段,值得深入研究,是初级和中级人员学习的一种手段改进代码。

  第四套:VBA代码解法视频是给初学者的视频讲解,可以快速上手,更快掌握这个技能。

  第五套:VBA中类的解释与利用这是一门进阶课程,讲解类的虚无和肉身的程度。虽然类的使用较少,但认真学习可以促进自身VBA理论的提高。

  第六套教程:《VBA信息获取与处理》,这是一个高级教程,涵盖范围更广,实用性更强,面向中高级人员。教程共有20个主题,包括:跨应用信息获取、随机信息的使用、邮件发送、VBA上网数据抓取、VBA延时操作、剪贴板应用、Split功能扩展、工作表信息等应用交互、FSO的使用对象,获取工作表和文件夹信息,获取图形信息,自定义工作表信息等功能。如有需要,可以微信:NZ9668

  学习的过程也是修心的过程,修心平和。在码字的世界里,心静,心情好,身体自然就好。当心平静时,它是正义的。心中没有那么多的邪见邪见,也没有那么多的妄想。利益他人就是利益自己。这些教程也是为了帮助你起航,帮助我。我上面的教程是我经验的传递。可以使用上面的信息 1,3,2,6,5 或者 4,3,2,6 ,5的顺序逐渐加深,逐渐学会。

  每一次收获都是成长的记录。怎么可能没有证据?正是这种执着,让晨曦绽放出灿烂的光芒。最后,给致力于VBA学习的朋友一句话,让大家感受一下枯燥而执着的学习过程:

  乌云掠过,暗语无声,

  只有微风,惊动了梦中的莺。

  看星星,疏散北斗七星,

  钦奈将与过去的鹅一起去。

  陌生人,昏暗的灯光,

  忍着长亭。

  多少VBA人,

  在漆黑的夜里,静静地寻找梦想,期待黎明。

  多么不合理!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线