除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www./cat4/449.html,VBA交流群273624828。 上节讲了数组的冒泡排序法,这次再来看一个例子。假设现在我有一个工作簿当中包含很多个工作表,工作表的名称都是一些汉字字符串,比如说城市名称,现在我要将这些工作表按表名拼音顺序重新排列。思路很简单,将所有工作表名按拼音排序,然后再按这个顺序移动工作表即可。按拼音排序一种方法可以将所有工作表名放了工作表中的一列,然后利用工作表的排序功能自动排序,简单明了。这里我们不用这种方法,而是用我们上节学过的冒泡排序法。 那么问题来了,怎样比较两个汉字字符串的大小呢,可以直接比较吗?经过验证答案是不行的,如果直接将两个字符串比较则比较的是Asc码的大小,不是按拼音排序的大小。这里介绍一个函数StrComp,其语法为StrComp(string1, string2, [compare]),其中第三个参数compare有三个值,这里只需要记住compare=vbtextcompare代表将String1和string2进行字符串比较,即汉字是按照拼音排序的。返回值如下 string1 小于 string2返回-1
string1 等于 string2 返回0
string1 大于 string2 返回1
下面来看代码:
上面的代码先将所有的工作表名放到一个一维数组Arr中,然后对Arr执行冒泡排序,这里我将冒泡排序弄成了一个函数,方便以后调用。在移动工作表时,将排最前的表不动,然后从最大的表依次放到第一个表的后面,这样就实现了工作表的移动。 本节示例文件下载地址:http://pan.baidu.com/s/1dDGiMY1。 |
|