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;暂时不用网格搜…

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;内部运行监控状态机…

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

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

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

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

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

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

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的阴…

全网最全的TTS模型汇总,电商人、自媒体人狂喜

近日TTS语音模型在AI圈内热度不小&#xff0c;今天小编就来给大家做了个TTS模型汇总&#xff01; GPT-SoVITS&#xff08;AI 卖货主播大模型Streamer-Sales销冠用的TTS模型&#xff09; 模型简介&#xff1a;支持英语、日语和中文&#xff0c;零样本文本到语音&#xff08;TT…

Python UUID模块:深入理解与使用技巧

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Atom CMS v2.0 SQL 注入漏洞(CVE-2022-25488)

前言 CVE-2022-25488 是一个发现于 Telesquare SDT-CW3B1 设备中的命令注入漏洞。这一漏洞可以被未经认证的远程攻击者利用&#xff0c;通过特殊构造的 HTTP 请求在设备上执行任意命令。以下是关于该漏洞的详细信息&#xff1a; 漏洞详细信息 漏洞编号: CVE-2022-25488影响范…

沃尔核材:价值重估

当英伟达这个曾经的GPU行业龙头&#xff0c;伴随AI的发展成为AI芯片架构的供应商时&#xff0c;他就跳出了原本行业的竞争格局&#xff0c;曾经还能与之一战的超威半导体被远远甩在身后&#xff0c;成为宇宙第一公司。 这说的就是一家公司价值的重估。今天给大家聊的也是这样一…

Python层次密度聚类算法库之HDBSCAN使用详解

概要 HDBSCAN 是一种层次密度聚类算法,它通过密度连接性来构建聚类层次结构。与传统的 K-Means 算法相比,HDBSCAN 具有以下几个显著特点: 自动确定聚类数量:HDBSCAN 能够根据数据自动确定聚类数量,不需要预先指定。 适应噪声和异常点:HDBSCAN 在聚类过程中能够很好地处理…

后端之路(集合项目)——结合案例正式搭建项目

在前面学完java后端的Maven、spring boot、Mysql、Mybatis之后&#xff0c;我们现在就应该集合它们开始搭建一个项目试试手了 这里我还是跟着黑马程序员的步骤来走好每一步&#xff0c;也给各位讲清楚怎么弄 先看一下这个图&#xff0c;觉得太笼统不明白的话不着急&#xff0c…

Java面试题总结

Redis篇 什么是缓存穿透 ? 怎么解决 ? 缓存穿透是指查询一个不存在的数据&#xff0c;如果从存储层查不到数据则不写入缓存&#xff0c;这将导致这个不存在的数据每次请求都要到 DB 去查询&#xff0c;可能导致 DB 挂掉。这种情况大概率是遭到了攻击。 解决方案有两种&…

Arthas实战(2)- OOM问题排查

一、 准备测试应用 新建一个 SpringBoot应用&#xff0c;写一段有 OOM bug 的代码&#xff1a; RestController RequestMapping public class JvmThreadController {List<TestWrapper> memoryList new ArrayList<>();GetMapping("/test")public Strin…