.net 遍历数组找重复值写入一个新数组_VBA代码将文本转换为数组及使用动态数组去除重复值...

064503b118b2f9a13de83a39447c06a1.png

分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.176-NO.177容是:

NO. 178:利用Split函数将文本转换为数组

NO. 179:在VBA中如何使用动态数组去除重复值的方法

36f6d75518829ae5b62da08c0666ffef.png

VBA过程代码178:利用Split函数将文本转换为数组

Sub mynz()

Dim Arr As Variant

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

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

End Sub

代码的解析说明:mynz过程使用Split 函数将工作表Sheets("60")中A1单元格的姓名分别写入到工作表Sheets("60")中的A列单元格。首先使用UBound函数取得返回数组的最大下标后调整单元格区域,因为数组下标的缺省下界默认为0,所以在使用Resize属性调整单元格区域时参数RowSize需要在返回数组的最大下标上加一。Resize用于调整指定区域的大小,返回代表调整后的区域。工作表Transpose函数将返回数组转置后写入到工作表调整后的单元格区域中。

3f15c3aa81a81cdc1fa0468caecfe2ad.png

VBA过程代码179:在VBA中使用动态数组去除重复值的方法

Sub mynz()

Dim Splarr() As String

Dim Arr() As String

Dim Temp() As String

Dim r As Integer

Dim i As Integer

On Error Resume Next

Splarr = Split(Sheets("61.62").Cells(1, 1), " ")

For i = 0 To UBound(Splarr)

Temp = Filter(Arr, Splarr(i))

If UBound(Temp) < 0 Then

r = r + 1

ReDim Preserve Arr(1 To r)

Arr(r) = Splarr(i)

End If

Next

Sheets("61.62").Range("a5").Resize(r, 1) = Application.Transpose(Arr)

End Sub

代码的解析说明:mynz过程将工作表中A1单元格的文本去除重复值后写入到工作表A列单元格。数组Splarr用来保存A1单元格的文本。Split 函数以A1单元格的文本创建一个下标从零开始的一维数组。代码使用For...Next语句遍历数组Splarr的所有元素。使用Filter函数创建一个数组Temp用来保存以当前Splarr数组的值在Arr数组中的搜索结果。代码根据返回的数组Temp的最大下标来判断当前Splarr数组的值是否重复。在使用使用Filter函数时如果没有相匹配的值,将返回一个空数组,最大下标小于0。工作表Transpose函数将去除重复值的的文本转置后写入到工作表单元格中。

521c6013cd330fb04da2303b88d86eaa.png

VBA是实现自己小型办公自动化的有效手段,我根据自己20多年的VBA实际利用经验,现推出了四部VBA教程,这些是我多年编程经验的记录,也是我“积木编程”思想的体现。每一讲都是较大块的“积木”,可以独立的完成某些或者某类的过程,有需要的朋友可以联络(WeChat:NZ9668)分享。利用这些可以提高自己的编程效率。其一:“VBA代码解决方案”PDF教程,是VBA中各个知识点的讲解,覆盖了绝大多数的知识点,是初学及中级以下人员必备;其二“VBA数据库解决方案”PDF教程,数据库是数据处理的利器,对于中级人员应该掌握这个内容了。其三“VBA数组与字典解决方案”PDF教程,讲解VBA的精华----字典,是我们打开思路,提高代码水平的必备。其四“VBA代码解决方案”视频教程。目前正在录制,“每天20分钟,半年精进VBA”,越早参与,回馈越多。现在录制到第三册的101讲。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值