vba二维数组初始化_VBA代码多数据单向排重方案

e462295a9bade5a7e57500a4eea2de36.png

对的,你没有看错,美国的数据是5000以上。世间因果循环,做了什么,就会收获什么。本该是春暖花开的季节,但现在确实恐慌弥漫。PMI,CPI,M2,非农指标,一个个揪心的数据,股市震荡,信心不足,熔断频发。后疫情时代的资本市场是否开始布局?终将演绎一场战胜萧条的战役。无论怎样,我们一定要坚信,疫情终将会过去,曙光一定会到来。后疫情时代将会是一个全新的世界,很多理念都将被打破,大多数人不会再享受体制内的保护,对于我们每个人,要尽可能多的学习有用的知识,为自己充电。在今后更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备。为后疫情时代做的必要准备。

什么是存量残杀?简单而言,在取代OFFICE新的办公软件没有到来之前,谁能把应用做到最为先进,谁就是王者。其中登峰至极的技能非VBA莫属!

今日继续和大家分享VBA编程中常用的常用“积木”过程代码。这些内容大多是我的经验的记录,来源于我多年的经验。最近代码多是出自”VBA数组与字典解决方案”教程,有一些朋友反映分享的内容不能很好的理解,可以参考这套资料的内容进行研读。今日分享的是第251集。

c315ce7ea542d472a97537352703acf8.png

VBA过程代码251:在多数据中去掉部分重复数据的方法

Sub MyNZ ()

Sheets("26").Select

Dim temvarArr1(), temvarArr2()

varArr1 = Range("A1:A" & Range("A1").End(xlDown).Row) '将A列数据写入数组

varArr2 = Range("B1:B" & Range("B1").End(xlDown).Row) '将B列数据写入数组

'将A列数据写入动态一维数组

ReDim temvarArr1(1 To UBound(varArr1)) '将A列数据写入动态一维数组

For i = 1 To UBound(varArr1)

temvarArr1(i) = varArr1(i, 1)

Next

'将B列数据写入动态一维数组

ReDim temvarArr2(1 To UBound(varArr2))

For i = 1 To UBound(varArr2)

temvarArr2(i) = varArr2(i, 1)

Next

'在数据多的列中去掉数据少列的值

If UBound(temvarArr1) >= UBound(temvarArr2) Then

tem = Filter(temvarArr1, temvarArr2(1), False) '给TEM赋初始值

For i = 2 To UBound(temvarArr2)

tem = Filter(tem, temvarArr2(i), False)

Next i

Else

tem = Filter(temvarArr2, temvarArr1(1), False) '给TEM赋初始值

For i = 0 To UBound(varArr1)

tem = Filter(tem, temvarArr1(i), False)

Next i

End If

'MsgBox Join(tem)'如果需要提升用户用此代码

Range("C1") = "多数据中去掉少数据重复值"

[c2].Resize(UBound(tem) + 1) = WorksheetFunction.Transpose(tem)

End Sub

7280f027dc8765a147417860ec41bb94.png

代码讲解:Dim temvarArr1(), temvarArr2() 定义了两个动态的数组。为什么要定义动态数组呢?因为我们FILTER函数用到的参数要在一维固定数组里完成,而一维数组的大小我们要根据实际情况的不同而改变; ReDim temvarArr1(1 To UBound(varArr1)) '将A列数据写入动态一维数组 这句话是给出了一维数组的大小;

For i = 1 To UBound(varArr1)

temvarArr1(i) = varArr1(i, 1)

Next

这段代码把数据从二维数组赋值给一位数组

tem = Filter(temvarArr1, temvarArr2(1), False) '给TEM赋初始值.这句代码实现了给TEM的赋初始值,以方便后续代码应用TEM;

For i = 2 To UBound(temvarArr2)

tem = Filter(tem, temvarArr2(i), False)

Next i

这段代码中TEM是一个循环利用的过程,在其中不断的把数据的重复值去掉

d14572f6c92432bbb2d0ccadaeb80ae9.png

VBA是利用OFFICE实现自己小型办公自动化的有效手段,我根据自己20多年的VBA实际利用经验,现在推出了四部VBA经验学习资料,是我“积木编程”思想的体现。

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

第二:VBA数据库解决方案,是数据处理的专业利器,介绍利用ADO连接ACCDB,EXCEL。

第三:VBA数组与字典解决方案,讲解VBA中的数组和字典的利用。

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

目前正在写第五部教程:VBA中类的解读和利用,希望在年内能陆续在各个平台和大家见面,前些时在平台上发表了一事件响应的视频录屏,反响还是不错的,这个视频就是类的应用经典。

VBA真的非常实用,希望大家掌握这个工具,利用这个工具,让自己在工作中轻松,高效,快乐。学习有用的知识,让健康的知识服务于大众,不要想不劳而获,更不要去偷奸取巧,踏踏实实,沉下心,提高自己,为后疫情时代做好知识的储备。我的目的就是授人以渔,给大家提供我现成的经验,你不偷着乐还更待何时?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值