VBA代码中利用数组排重时过程之优化

欧洲,还是欧洲,三月下半期的路漫漫。股市震荡,信心不足,熔断频发。后疫情时代的资本市场是否开始布局?终将演绎一场战胜萧条的战役。无论怎样,我们一定要坚信,疫情终将会过去,曙光一定会到来。后疫情时代将会是一个全新的世界,很多理念都将被打破,大多数人不会再享受体制内的保护,对于我们每个人,要尽可能多的学习有用的知识,为自己充电。在今后更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备。为后疫情时代做的必要准备。

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

今日继续和大家分享VBA编程中常用的常用"积木"过程代码。这些内容大多是我的经验的记录,来源于我多年的经验。当前的代码多是出自"VBA数组与字典解决方案",有一些朋友反映分享的内容不能很好的理解,可以参考这套资料的内容进行研读。今日分享的是NO.248,内容是:VBA代码利用数组排重时过程的优化

VBA代码中利用数组排重时过程之优化

VBA过程代码248:利用数组排重时避免错误提示的方法

Sub MyNZ ()

Dim Splarr() As String

Dim Arr() As String

Dim Temp() As String

Dim r As Integer

Dim i As Integer

Splarr = Split(Sheets("22").Range("a1"), " ")

ReDim Arr(1)

Arr(1) = Splarr(0)

r = 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("23").Range("a5").Resize(r, 1) = Application.Transpose(Arr)

End Sub

VBA代码中利用数组排重时过程之优化

代码解析:上述代码把arr提前赋了初始值,这样就避免了代码在执行过程中产生错误了。

上述代码中ReDim Arr(1),是先扩展数组到Arr(1),然后将第一个Splarr()值即Splarr(0)赋给它,由于arr有了第一个值所以此时也应该给r 同步赋值1.这种处理方案会避免错误。

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

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

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

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

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

VBA代码中利用数组排重时过程之优化

目前正在写第五部教程:VBA中类的解读和利用,希望在年内能陆续在各个平台和大家见面。

VBA真的非常实用,希望大家掌握这个工具,利用这个工具,让自己在工作中轻松,高效,快乐。学习有用的知识,让健康的知识服务于大众,不要想不劳而获,更不要去偷奸取巧,踏踏实实,沉下心,提高自己,为后疫情时代做好知识的储备。


分享到:


相關文章: