vba抓取网页数据(《VBA信息获取与处理》教程:第四节将VBA写入工作表时)
优采云 发布时间: 2021-11-19 02:08vba抓取网页数据(《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中的使用