vba抓取网页数据(《VBA信息获取与处理》教程:第四节将VBA写入工作表时)

优采云 发布时间: 2021-11-19 02:08

  vba抓取网页数据(《VBA信息获取与处理》教程:第四节将VBA写入工作表时)

  【分享成果,正能量庆幸】越是倒霉,越要冷静,振作起来,默默的生存下去,你要接受,那些突如其来的损失,当你什么都不做的时候,唯一的你能做的事 试着让自己变得更好一点。

  再有能力的人,也抓不住;无论他们多么执着,他们都会被打破。人累了,就有休息的权利,心痛时,就有放手的理由。不必咄咄逼人,眼泪是最好的释放,不必伪装,回报是最美的容颜。

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

  本教程共两卷,八十四讲。今天的内容是主题四“EXCEL工作表数据读取、回填和搜索”的第四讲:数组转置

  

  第四节 将VBA数组写入工作表时Transpose的使用

  转置是数组应用中经常用到的知识点。在使用Excel表格的过程中,当我们想把横行变成竖列(或者把竖排的数据转为横排)时,希望两个不同排列的数据相互关联时,可以使用转置函数. 但是注意这个函数是一个工作表函数,所以在使用这个函数的时候一定要使用Application.Transpose(Arr)。

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

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

  具体代码如下:

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

  Dim Arr 作为变体

  将 MyRange 调暗为范围

  工作表(“SHEET4”)。选择

  Arr = Array("大象", "老虎", "狮子", "狐狸")

  设置 MyRange = Range("A1")

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

  MyRange.ClearContents

  MyRange.Value = Application.Transpose(Arr)

  MsgBox “好的!”

  结束子

  代码截图:

  

  代码说明:这里需要注意的是,base cell area的展开语句变成了: Resize(UBound(Arr) + 1, 1) 这是列的展开,所以转置语句为Application。 Transpose(Arr ). 这里要注意的一点是resize参数是颠倒的。

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

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

  具体代码如下:

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

  Dim 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)

  MsgBox “好的!”

  结束子

  代码截图如下:

  

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

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

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

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

  

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

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

  ② 7→8

  各套教程简介:

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

  第一套教程(共三册):《VBA代码解决方案》:上手后的改进教程

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

  第三套教程(共两册):《VBA Array and Dictionary Solution》:是数组和字典的专门讲解

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

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

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

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线