龙空技术网

利用VBA数组和字典,实现数据冒泡排序

VBA语言専攻 167

前言:

今天朋友们对“数组冒泡法排序算法”大致比较关怀,兄弟们都想要知道一些“数组冒泡法排序算法”的相关文章。那么小编在网上网罗了一些有关“数组冒泡法排序算法””的相关资讯,希望咱们能喜欢,朋友们一起来学习一下吧!

耐心,机会总在等待中出现,做一件事,最重要的不是兴趣,而是意义。越是有意义的事情,困难会越多,愿力决定始终,智慧决定成败。寻找心灵的平静;不管遇到什么,都是一个风景。心善则美,心纯则真。怀善心,做善事,一生无愧。怀平常心,做平常事,日夜安宁。看淡纷争,看轻得失。一杯茶,满也好,少也好,不要计较其间;浓也好,淡也好,其中自有值得品的味道。把浮躁的心静下来,去感悟真实的时间,静下心,多学习,积累的就是福报,积累的就是财富。保持快乐的心态,坚定且执着。学习有用的知识,经营自己,而不是天天混日子,也不是天天熬日子。为后疫情时代做知识的储备。在今后更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备。

在取代OFFICE新的办公软件没有到来之前,谁能数据处理做到最为极致,谁就是王者。其中登峰至极的技能非VBA莫属!

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

VBA过程代码280:利用数组和字典,冒泡排序在VBA中的实现

Sub MyNZ ()

Dim myarr As Variant

Sheets("50").Select

myarr = Range("a2:b" & Range("a2").End(xlDown).Row)

For i = UBound(myarr) To 1 Step -1

For j = 1 To i - 1

If myarr(j, 2) >= myarr(j + 1, 2) Then '比较相邻数据

Temp1 = myarr(j, 1)

Temp2 = myarr(j, 2)

myarr(j, 1) = myarr(j + 1, 1) '交换位置

myarr(j, 2) = myarr(j + 1, 2) '交换位置

myarr(j + 1, 1) = Temp1

myarr(j + 1, 2) = Temp2

End If

Next j

Next i

Range("g2").Resize(UBound(myarr), 2) = myarr

End Sub

代码解析: 上述代码实现了数据冒泡排序。并把排序后的数据放在了G,H列。代码在数组中建立了两个循环,第一个循环是即外层的循环是数组的整体循环,是反方向来进行的,对于进入循环的每一个数值,开始内层的循环,在内层的循环中的作用就是交换位置,将每一个数值放到合适的位置,在交换位置的时候,要用两个变量把原位置的数暂时存放一下,然后交换,交换好后,将临时存放的数再放回到新的位置,要注意先下后上的原则。

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

第一:VBA代码解决方案,是VBA中各个知识点的讲解,这部教程可以覆盖绝大多数的知识点;

第二:VBA数据库解决方案,是数据处理的专业利器,详细的介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。

第三:VBA数组与字典解决方案,讲解VBA中的数组和字典的利用。字典是VBA代码水平提高的手段,值得深入的学习。

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

上述教程的学习顺序,1,3,2或者是4,3,2逐渐深入的了解VBA掌握VBA.目前正在集中精力写第五部教程:VBA中类的解读和利用,希望在年内能陆续在各个平台和大家见面。

利用VBA进行数据统计真的非常实用,希望大家掌握这个工具,利用这个工具,让自己轻松,高效,快乐的工作。我的"积木编程"思想也是值得大家借鉴的,这种思想让大家在代码中解脱出来,成模块的构建自己的应用,提高自己的编程效率。根据我提供的经验,利用时间多学习。

标签: #数组冒泡法排序算法 #数组的冒泡排序法