VBA早间档

VBA早间档,利用简单的几分钟,学习一些简单的VBA知识,提升工作效率

今日主题

VBA早间档,今天我们继续来学习一些常见的简单操作,之前我们分享过关于工作表的排序的一个方法,可能是因为之前的考虑并不是很前面,在小伙伴们实际的操作中也是出现了 一些问题,集中体现下如果出现2位及以上的数字的时候,排序会出现错误

因为文本排序模式默认是按照第一位的大小来排序的,所以今天我们来优化下。

案例展示和解析

依然是和上次差不多的工作表,不过我们增加了12班,16班等这些两位数的班级,尝试着去避免上一次的代码出现的问题。

从上面的结果来看,最新版的代码中已经成功的杜绝了之前多位数可以出现的排序错误的问题

代码解析

今天我们依然是利用数组的方式来解决这个问题

我们先2个数组,首先第一个数组就是所有的工作表名称中的数字所组成的数组

For i = 1 To n arr1(i) = Val(Mid(Sheets(i).Name, 3)) Next

val函数的使用方法,在之前19点档我们第三系列VBA和函数的篇章中有讲述过用法和作用,他主要的作用就是讲数字提取出来,但是他使用的前提是数字开头的文本。

然后我们就可以利用arr1这个数组进行排序了

For i = 1 To n arr2(i) = Application.WorksheetFunction.Large(arr1, i) Next

数组有一个large可以得到数组中的第一个大,第二个,这样的方法。后面讲到数组的时候,大家就会明白了。

大致的用法就是

s=large(arr,N)

想要排名第几的数组的内容,N就是几

==========================================

以上就是今天的VBA早间档的全部内容,感谢大家的捧场~~

明天早上7:30,准时再见

今天将两种排序方法的文档都汇总起来,大家可以回复“排序”来获得两种 不同的排序方法的源码