dataframe转化为array_VBA代码解决方案的第60讲内容:文本转换为数组及Split函数

969ead9c0556ff33f02a5e43b2c3bd3d.png

大家好,我们今日继续讲解VBA代码解决方案的第60讲内容:如何将文本内容转化为数组。这个问题的提出是因为我们在处理一些文字时往往在WORD中,要拷贝到EXCEL中来填充一些资料,多是人名,设备名等,这些往往要求以独占一个 单元格的信息,这时该如何把这些人名,设备名放到EXCEL中呢?这就是讲文本转化为数组再填充的问题。

一:在处理字符串时可以使用Split 函数将字符串按指定的分隔符分开并以数组返回,

Split 函数返回一个下标从零开始的一维数组,包含指定数目的子字符串,语法如下:

Split(expression[, delimiter[, limit[, compare]]])

参数expression是必需的,包含子字符串和分隔符的字符串表达式。

参数delimiter是必需的,用来标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。

二:我们在完成数组的转换之后,往往要求横向或者纵向的填充,这时工作表Transpose函数返回转置单元格区域,即将一行单元格区域转置成一列单元格区域,反之亦然,语法如下:

TRANSPOSE(array)

参数array为需要进行转置的数组或工作表中的单元格区域。

有了上面两个知识点我们看我们今日的学习内容,我们有一个单元格的文本内容,要把这些内容首先转化为数组,然后再填充到纵向的单元格中。

代码如下:

Sub MySplitarr()

Dim Arr As Variant

Arr = Split(Sheets("kk").Cells(1, 1), " ")

Sheets("kk").Cells(3, 1).Resize(UBound(Arr) + 1, 1) = Application.Transpose(Arr)

End Sub

代码解析:

MySplitarr过程使用Split 函数将工作表Sheets("kk")中A1单元格的姓名分别写入到工作表Sheets("kk")中的A列单元格。

第4行代码,首先使用UBound函数取得返回数组的最大下标后调整单元格区域,因为数组下标的缺省下界默认为0,所以在使用Resize属性调整单元格区域时参数RowSize需要在返回数组的最大下标上加一。

然后使用工作表Transpose函数将返回数组转置后写入到工作表调整后的单元格区域中。

代码截图:

a959c0df09b8a6eab5feb110a431296b.png

运行前的窗口:在A1单元格有一组文本:

c8bc72bed09c4f6474c587d48dcc1f0d.png

运行后:

83093312520767b12b86bb6b59abbf4f.png

运行后在A3单元格向下处理了上述的文本。

今日内容回向:

1 Split 函数的作用是什么?他是VBA函数吗?

2TRANSPOSE(array) 函数的作用是什么?

欢迎大家到我的自媒体平台沟通交流:个人微信号“NZ9668”、头条号“VBA专家”、百家号“VBA与GO语言”、微信公众号“NZ_9668”、社群“VBA学习交流群”。

这一系列文章是根据我多年的工作经验编写的,也是一直在利用的工具,非常方便好用。现在分享出来,希望能对同样在职场打拼的朋友有些许的帮助,使你的工作更加高效、流畅。朋友们有问题请随时提出来,我们一起探讨学习。对数据分析有需要的公司、组织或个人可以直接联系我,及时为你提供专业的定制技术支持。

工作不是一切。工作是每个人安身立命、成长发展的基础。但你要知道工作是永远也做不完的,时间会抹去很多问题。多关注自己、家人和朋友,这些才是我们生活中更为重要的东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值