全民一起VBA实战篇 专题2 第五回 多键排序无非多次循环,独特功能还需独自开发

本文主要是介绍全民一起VBA实战篇 专题2 第五回 多键排序无非多次循环,独特功能还需独自开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

相关知识点:

多关键字排序原理:现对次要的列排序,再排序优先的倒序(从最次要开始)进行依次排序,就能实现

Worksheets.Sort 工作表排序,自学

例1 足球赛积分表排序,四个排序列

     本来的优先级是总积分、获胜次数、净胜球、进球数

        实现排序就得倒序进球数、净胜球、获胜次数、总积分按照这个顺序排序,最关键的最后排

Sub demo2()

       Dim r as range

       Set r=range(“a3:e10”)

       r.sort key1:=cells(1,5),order1:=xldescending

       r.sort key1:=cells(1,4),order1:=xldescending

       r.sort key1:=cells(1,3),order1:=xldescending

       r.sort key1:=cells(1,2),order1:=xldescending

 

End Sub

简单重复,规则明确用程序优化一下:

Sub demo()

       Dim r as range, k as long

       Set r=range(“a3:e10”)

       For k=5 to 2 step -1

              r.sort key1:=cells(1,k),order1:=xlDescending

       Next k

End Sub

例2 如果关键字不是顺序排列的用数组解决

Sub demo3()

       Dim r as range, k as long, a()

       a=arry(3,5,2,6)

       Set r=range(“a3:f10”)

       For k=3 to 0 step -1

              r.sort key1:=cells(1,a(k)),order1:=xlDescending

       Next k

End Sub

 

 

例3 已经按照GDP排序了,重新按照人均GDP进行排序(有隔行)

 

 

Sub sortbyaveGDP()

       Dim i as long, j as long, k, r as range

       For i =3 To 14

              If  Not cells(i,4).Mergecells Then ‘如果第i行是合并单元格,则不处理

                     For j=i+1 To 15

                            If  Not cells(j,4).Mergecells Then ‘如果第j行是合并单元格,则不处理

                                   If cells(j,4)>cells(i,4 ) Then\

                                   ‘以下代码交换i行和j行的三列数据,也可以使用循环结构对其简化

                                          k=cells(i,2):cells(j,2)=cells(j,2):cells(j,2)=k

                                          k=cells(i,3):cells(j,3)=cells(j,3):cells(j,3)=k

                                          k=cells(i,4):cells(j,4)=cells(j,4):cells(j,4)=k

                                   End If

                            End If

                     Next j

              End If

       Next i

End Sub

这篇关于全民一起VBA实战篇 专题2 第五回 多键排序无非多次循环,独特功能还需独自开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/lei_686/article/details/93730723
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/633152

相关文章

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

Java List排序实例代码详解

《JavaList排序实例代码详解》:本文主要介绍JavaList排序的相关资料,Java排序方法包括自然排序、自定义排序、Lambda简化及多条件排序,实现灵活且代码简洁,文中通过代码介绍的... 目录一、自然排序二、自定义排序规则三、使用 Lambda 表达式简化 Comparator四、多条件排序五、

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Java如何用乘号来重复字符串的功能

《Java如何用乘号来重复字符串的功能》:本文主要介绍Java使用乘号来重复字符串的功能,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java乘号来重复字符串的功能1、利用循环2、使用StringBuilder3、采用 Java 11 引入的String.rep

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

在React聊天应用中实现图片上传功能

《在React聊天应用中实现图片上传功能》在现代聊天应用中,除了文字和表情,图片分享也是一个重要的功能,本文将详细介绍如何在基于React的聊天应用中实现图片上传和预览功能,感兴趣的小伙伴跟着小编一起... 目录技术栈实现步骤1. 消息组件改造2. 图片预览组件3. 聊天输入组件改造功能特点使用说明注意事项

基于Redis实现附近商铺查询功能

《基于Redis实现附近商铺查询功能》:本文主要介绍基于Redis实现-附近商铺查询功能,这个功能将使用到Redis中的GEO这种数据结构来实现,需要的朋友可以参考下... 目录基于Redis实现-附近查询1.GEO相关命令2.使用GEO来实现以下功能3.使用Java实现简China编程单的附近商铺查询4.Red