大家好,最近推出的内容是"VBA信息获取与处理"中的部分内容,这套教程面向中高级人员,涉及范围更广,实用性更强,现在的内容是第四个专题"EXCEL工作表数据的读取、回填和查找"的内容。

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

转置(Transpose)是数组应用中经常用到的知识点,在使用Excel表格的过程中,当我们想将横行转成竖列(或将纵向的数据切换成横向排列),又希望这前后两个排列方式不一样的数据相互关联的时候就可以利用转置函数transpose了。但要注意这个函数是工作表函数,所以利用这个函数的时候必须用Application.Transpose(Arr)。

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

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

具体代码如下:

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

Dim Arr As Variant

Dim MyRange As Range

Sheets("SHEET4").Select

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

Set MyRange = Range("A1")

Set MyRange = MyRange.Resize(UBound(Arr) + 1, 1)

MyRange.ClearContents

MyRange.Value = Application.Transpose(Arr)

MsgBox "ok!"

End Sub

代码截图:

代码讲解:这里需要注意的是基准单元格区域的扩展语句变为:Resize(UBound(Arr) + 1, 1)这是列的扩展了,所以转置语句相应就是Application.Transpose(Arr) 。这里要注意点是调整大小的参数是反向的。

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

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

具体代码如下:

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

Dim Arr As Variant

Dim MyRange As Range

Sheets("SHEET4").Select

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

Set MyRange = Range("A1")

Set MyRange = MyRange.Resize(UBound(Arr, 2), UBound(Arr, 1))

MyRange.ClearContents

MyRange.Value = Application.Transpose(Arr)

MsgBox "ok!"

End Sub

代码截图如下:

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

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

本节知识点回向:如何理解转置?一维数组和二维数组转置是如何利用的?

本专题参考程序文件:004工作表.XLSM

VBA是利用Office实现自己小型办公自动化的有效手段,这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!学习VBA是个过程,也需要经历一种枯燥的感觉,如太白诗云:众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

"水善利万物而不争",绵绵密密,微则无声,巨则汹涌。学习亦如此,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时再去做自欺欺人的言论。要努力提高自己,用一颗充满生机的心灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。茶,满也好,少也好,不要计较;浓也好,淡也好,其中自有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。在后疫情更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备。学习时微而无声,利用时则巨则汹涌。

我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了六部VBA专门教程。

第一套:VBA代码解决方案 是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;

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

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

第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。

第六套教程:《VBA信息获取与处理》是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。如需要可以可以WeChat: NZ9668

学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。利人就是利己。这些教程也是为帮助大家起航,助上我自己之力,我的上述教程是我多的经验的传递,大家可以根据以上资料1,3,2,6,5或者是4,3,2,6,5的顺序逐渐深入的逐渐学习。

每一分收获都是成长的记录,怎无凭,正是这种执着,成就了朝霞的灿烂。最后将一阙词送给致力于VBA学习的朋友,让大家感受一下学习过程的枯燥与执着:

浮云掠过,暗语无声,

唯有清风,惊了梦中啼莺。

望星,疏移北斗,

奈将往事雁同行。

阡陌人,昏灯明暗,

忍顾长亭。

多少VBA人,

暗夜中,悄声寻梦,盼却天明。

怎无凭!

分享成果,随喜正能量

vba put 语名 delphi 用什么语句_将VBA数组写入工作表时转置(Transpose)的利用相关推荐

  1. vba 将数组作为参数传递_将VBA数组写入工作表时转置(Transpose)的利用

    大家好,最近推出的内容是"VBA信息获取与处理"中的部分内容,这套教程面向中高级人员,涉及范围更广,实用性更强,现在的内容是第四个专题"EXCEL工作表数据的读取.回填和 ...

  2. vba 跳到下一个循环_遍历工作薄和工作表(For Each循环的利用)

    今日的内容是"VBA之EXCEL应用"的第三章"工作簿(Workbook)和工作表(Worksheet)对象(Object)"中第三节"遍历工作薄和工 ...

  3. VBA里的文本函数 find() search() substitute() replace() match() large() 在EXCEL工作表使用和VBA中使用差别的对比

    1 find() 1.1 worksheetfunction.find() 工作表函数 FIND(find_text, within_text, [start_num]) FINDB(find_tex ...

  4. Excel 2010 VBA 入门 088 数据处理之汇总列数不相等的多个工作表

    目录 示例 代码1 合并汇总(Consolidate)方法 Array函数 Evaluate方法构造数组 代码2 示例 如图所示,该工作簿中有若干个工资表,由于每个月发放的工资项目不同,因而造成每个工 ...

  5. vba 判断文本框内容是否为空_【VBA】 数据输入 Inputbox 基本语法

    在使用Excel 的过程中,如果需要用户输入简单的数据,作为"已知数",那么可以使用inputbox 函数显示一个对话框,供用户在对话框中输入数据. Inputbox 函数语法在一 ...

  6. sql 语句left join关联超过2张表时,随着left join一路向左,永远只能是最左边的关联表与新表关联吗?还是母表可以一直on下去?

    今天这个帖子要解决一个问题:oracle数据库表间通过left join关联超过2张表时,随着left join一路向左,永远只能是最左边的关联表与新表关联吗?还是母表可以一直on 下去? 利用sql ...

  7. 商城 mysql语句_简单商城的数据库建表sql

    CREATE TABLE `product_info` ( `product_id` VARCHAR(32) NOT NULL, `product_name` VARCHAR(64) NOT NULL ...

  8. vba移动文件_VBA学习笔记8:工作表操作

    学习资源:<Excel VBA从入门到进阶>第10集 by蓝色幻想 一.Excel工作表的分类 Excel工作表有两大类,一类是我们平常用的工作表(worksheet),另一类是图表.宏表 ...

  9. 数据库实验2——使用SQL语句创建、修改和删除基本表

    文章目录 数据库实验2--使用SQL语句创建和删除基本表 一. 实验目的: 二. 实验准备 三. 实验要求 四.实验步骤 1. 创建基本表 2. 修改表结构 3.删除基本表 五.实验总结 数据库实验2 ...

最新文章

  1. pgpool-II3.1 的内存泄漏(六)
  2. C#宿舍管理系统数据表文档分析含释义
  3. ListView实现多种item布局的方法和注意事项
  4. ROS学习笔记02:ROS架构与基础
  5. 从人与世界的关系上来看,人其实分为两部分
  6. idea中中文字体设置
  7. 百度地图-个性化地图用法
  8. Process finished with exit code -1073740791 (0xC0000409)解决方法
  9. java2048_java之2048
  10. SAS:Proc Freq ,输出结果控制小数位数
  11. 级联查询ajax,ajax级联查询
  12. 你有没有为自己拼过命?
  13. PHP+AJAX高性能聊天室(群聊+私聊)
  14. 自动监控Oracle 表空间信息并发送邮件脚本
  15. 【c#】获取DGV单元格对象方法dgv按钮列的使用介绍
  16. 微信小程序超级占内存_手机APP占内存?4款超赞的微信小程序,不用下载,拿去即可使用!...
  17. python参考手册 第一章
  18. 多级弹出菜单jQuery插件ZoneMenu
  19. Java PDF数字签名(一) - 添加数字签名
  20. GetKeyState和GetAsyncKeyState的区别

热门文章

  1. a6gpp php,内行人才知道的古董级玛莎拉蒂A6G 2000
  2. pythongui 三维_python图形GUI基本示例
  3. net空间一次购买终身使用_net域名与org域名哪个投资价值更高?
  4. ArcEngine二次开发_03(鼠标在图层中选择要素进行高亮显示)
  5. GDB watch的使用
  6. Linux开机启动过程(10):start_kernel 初始化(至setup_arch初期)
  7. 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
  8. tcpdump命令速查
  9. 回溯法采用的搜索策略_数值优化|笔记整理(3)——线搜索中的步长选取方法,线性共轭梯度法...
  10. flutter 获取android 还是ios_Flutter完整开发实战详解(二十、 Android PlatformView 和键盘问题)...