Excel中按列的首行字母顺序,重新排列(VBA脚本)

排序前

要求对4列数据按照第一行abcd的顺序排列

VB脚本如下:

要使用这个脚本,请按照以下步骤操作:

  1. 打开Excel,然后按下 Alt + F11 打开VBA编辑器。
  2. 在VBA编辑器中,选择“插入” > “模块”,在打开的模块窗口中粘贴上面的代码。
  3. 选择你想要排序的单元格区域。
  4. 按下 F5 运行宏或关闭VBA编辑器,在Excel中通过“开发工具” > “宏”来选择并运行这个宏。
Sub SortColumnsByFirstRow()Dim rng As RangeDim data() As VariantDim colOrder() As VariantDim i As Integer, j As IntegerDim temp As Integer' 检查选择区域If Selection.Areas.Count <> 1 ThenMsgBox "请选择一个单一的单元格区域进行排序。", vbExclamationExit SubEnd If' 获取选择区域Set rng = SelectionIf rng.Cells(1, 1).MergeCells ThenMsgBox "选定区域内含有合并的单元格,请先解除合并。", vbExclamationExit SubEnd If' 将选择区域的数据写入数组data = rng.Value' 获取列的数量Dim colCount As IntegercolCount = UBound(data, 2)' 创建列顺序数组ReDim colOrder(1 To colCount)ReDim data_1(1 To colCount)For i = 1 To colCountcolOrder(i) = idata_1(i) = data(1, i)Next i' 使用冒泡排序算法根据首行数据对列进行排序For i = 1 To colCount - 1For j = 1 To colCount - iIf data_1(j) > data_1(j + 1) Then' 交换列的顺序temp = colOrder(j)colOrder(j) = colOrder(j + 1)colOrder(j + 1) = tempDim temp1 As Varianttemp1 = data_1(j)data_1(j) = data_1(j + 1)data_1(j + 1) = temp1End IfNext j'MsgBox "i=" & colCount - i & " " & colOrder(colCount - i) & " " & data(1, colCount - i)Next i'For i = 1 To colCount'    MsgBox "i=" & i & " " & colOrder(i) & " " & data(1, i)'Next i' 根据排序后的列顺序重新写入数据Dim sortedData() As VariantReDim sortedData(1 To UBound(data, 1), 1 To colCount)For i = 1 To colCountFor j = 1 To UBound(data, 1)sortedData(j, i) = data(j, colOrder(i))'MsgBox j & i & sortedData(j, i)Next jNext i' 将排序后的数据重新写回Excel范围rng.Value = sortedData' 调整列宽For i = 1 To colCountrng.Columns(i).AutoFitNext iMsgBox "所选单元格区域已按首行字母顺序排序完成。", vbInformation
End Sub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/38840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python机器学习】算法链与管道——构建管道

目录 1、首先&#xff0c;我们构建一个由步骤列表组成的管道对象。 2、向任何其他scikit-learn估计器一样来拟合这个管道 3、调用pipe.score 我们来看下如何使用Pipeline类来表示在使用MinMaxScaler缩放数据后&#xff0c;再训练一个SVM的工作流程&#xff08;暂时不用网格搜…

常用的限流工具Guava RateLimiter 或Redisson RRateLimiter

在分布式系统和高并发场景中&#xff0c;限流是一个非常常见且重要的需求。以下是一些常用的限流工具和库&#xff0c;包括它们的特点和使用场景&#xff1a; 1. Guava RateLimiter Google 的 Guava 库中的 RateLimiter 是一个简单且高效的限流工具&#xff0c;适用于单节点应…

MySQL数据库设计作业 ——《网上书店系统》数据库设计实验报告

数据库设计作业——《网上书店系统》数据库设计 一、功能需求 普通用户&#xff1a;可以进行最基础的登陆操作&#xff0c;可浏览图书、按类别查询图书、查看 图书的详细信息&#xff0c;还可以注册成为会员。会员&#xff1a;需要填写详细信息&#xff08;真实姓名、性别、手…

什么是yum源?如何对其进行配置?

哈喽&#xff0c;大家好呀&#xff01;这里是码农后端。今天来聊一聊Linux下的yum源及其配置相关的内容。简单来说&#xff0c;yum源就相当于一个管理软件的工具&#xff0c;可以想象成一个很大的仓库&#xff0c;里面存放着各种我们所需要的软件包及其依赖。 一、Linux下软件包…

VRPTW(MATLAB):北极海鹦优化(APO)算法求解带时间窗的车辆路径问题VRPTW(提供MATLAB代码)

详细介绍 VRPTW&#xff08;MATLAB&#xff09;&#xff1a;北极海鹦优化&#xff08;Arctic puffin optimization&#xff0c;APO&#xff09;算法求解带时间窗的车辆路径问题VRPTW&#xff08;提供MATLAB代码&#xff09;-CSDN博客 ********************************求解结果…

电源管理芯片PMIC的安全策略

1.概述 PMIC作为系统的电源管理模块&#xff0c;其输入电压一般会比较高&#xff0c;为保证芯片自身的安全&#xff0c;PMIC芯片会有独立的安全域&#xff0c;和功能域完全隔离&#xff0c;拥有独立的电压和电流输入&#xff0c;独立的晶振模块&#xff0c;内部运行监控状态机…

【代码随想录_Day23】122. 买卖股票的最佳时机 II 55. 跳跃游戏 45.跳跃游戏II 1005.K次取反后最大化的数组和

Day23 OK&#xff0c;今日份的打卡&#xff01;第二十三天 以下是今日份的总结买卖股票的最佳时机 II跳跃游戏跳跃游戏IIK次取反后最大化的数组和 以下是今日份的总结 122 买卖股票的最佳时机 II 55 跳跃游戏 45 跳跃游戏II 1005 K次取反后最大化的数组和 今天的题目难度不低…

MySQL实战-4 | 深入浅出索引(上)(下)

什么是数据库索引&#xff0c;索引又是如何工作的呢&#xff1f; 一句话简单来说&#xff0c;索引的出现其实就是为了提高数据查询的效率&#xff0c;就像书的目录一样。一本 500 页的书&#xff0c;如果你想快速找到其中的某一个知识点&#xff0c;在不借助目录的情况下&…

【AI工具】-GPU算力租赁平台介绍

目录 1. AWS&#xff08;亚马逊云服务&#xff09; 2. Google Cloud Platform (GCP) 3. Microsoft Azure 4. 阿里云 5. 腾讯云 6. 派欧算力云&#xff08;PPIO&#xff09; 7. Lambda Labs 8. 猿界算力 9. AutoDL算力云&#xff08;视拓云&#xff09; 10. 极链AI云 …

试用笔记之-免费的汇通餐饮管理软件

首先下载免费的汇通餐饮管理软件&#xff1a; http://www.htsoft.com.cn/download/htcanyin.exe 安装后的图标 登录软件&#xff0c;默认没有密码 汇通餐饮管理软件主界面 汇通餐饮软件前台系统 点菜

使用 Java Swing 和 XChart 创建多种图表

在现代应用程序开发中&#xff0c;数据可视化是一个关键部分。本文将介绍如何使用 Java Swing 和 XChart 库创建各种类型的图表。XChart 是一个轻量级的图表库&#xff0c;支持多种类型的图表&#xff0c;非常适合在 Java 应用中进行快速的图表绘制。 1、环境配置 在开始之前&…

关于正负样本不均衡对树模型feature importance的影响

正负样本不平衡确实可能会影响决策树模型&#xff08;包括随机森林和梯度提升树等树模型&#xff09;中的特征重要性评估。这是因为特征重要性的计算通常基于模型内部节点分裂所带来的信息增益或基尼不纯度减少。 在不平衡的数据集中&#xff0c;模型可能会偏向于频繁选择那些…

PSINS中,avp的解读

PSINS中的AVP PSINS工具箱里面的trj.avp、trj.avp0等中的avp指的是姿态&#xff08;attitude&#xff09;、速度&#xff08;velocity&#xff09;和位置&#xff08;position&#xff09;&#xff0c;最后加一个时间戳t&#xff1a; avp[att; vn; pos; t]。 姿态 姿态的构成…

imx6ull/linux应用编程学习(7)在LCD上显示文字

在linux中&#xff0c;确实可以像裸机一样自己取模、自己写函数打点显示&#xff0c;但是效率很低&#xff0c;不能满足多文字显示&#xff0c;在Linux 系统中&#xff0c; 字体文件通常会放在/usr/share/fonts 目录下&#xff0c;有了字体文件之后&#xff0c;我们就不需要再对…

X86 +PC104+支持WinCE5.0,WinCE6.0,DOS,WinXP, QNX等操作系统,工业控制数据采集核心模块板卡定制

CPU 模块 是一款基于RDC 3306的SOM Express模块。RDC 3306这款X86架构的CPU是一款性能高、稳定性强的处理器。 它是一款灵活精巧的主板&#xff08;尺寸为91.8mm68.6mm&#xff09;&#xff0c;可以灵活的运用于用户的底板&#xff0c;节约开发成本。模块的接插件使用插针形式…

人工智能在音乐创作中的双刃剑:创新与挑战

AI在创造还是毁掉音乐&#xff1f; 简介 最近一个月&#xff0c;轮番上线的音乐大模型&#xff0c;一举将素人生产音乐的门槛降到了最低&#xff0c;并掀起了音乐圈会不会被AI彻底颠覆的讨论。短暂的兴奋后&#xff0c;AI产品的版权归属于谁&#xff0c;创意产业要如何在AI的阴…

pom文件-微服务项目结构

一、微服务项目结构 my-microservices-project/ ├── pom.xml <!-- 父模块的pom.xml --> ├── ry-system/ │ ├── pom.xml <!-- 子模块ry-system的pom.xml --> │ └── src/main/java/com/example/rysystem/ │ └── RySystemApplication.…

数据类型

数据类型 注意&#xff1a;每个字段都必须设置数据类型 整数类型 tinyint - 1字节 - 应用场景&#xff1a;存储状态码 int - 4字节 - 应用场景&#xff1a;没有特殊要求&#xff0c;一般使用int bigint - 8字节 - 应用场景&#xff1a;存储极大的整数 CREATE TABLE user (use…

Elasticsearch8.x Spring Data and Spring Boot 3 尝鲜

在本教程中,我们将通过实际操作和实用的方式,探索使用 Spring Boot 进行 Elasticsearch 的基础知识。我们将学习如何使用 Spring Data Elasticsearch 模块创建索引、进行 CRUD 操作、搜索和查询 Elasticsearch 文档。我们还将看看如何在我们的 Spring 应用程序中记录 Elastic…