Excel宏编程代码,根据混合的名次合并计算进退值
原始的期中名次,保存在sheet4中,以sheet4的C和D来存储期末名次和进退值
期末名次在Sheet5:
由于sheet4和sheet5是乱序的,所以需要匹配合并,先用Excel查看代码:
直接上代码:
Sub 合并名次排序()
arr4A = Worksheets("sheet4").Range("A1") '选择sheet4 A列
arr4A = Worksheets("sheet4").UsedRange
arr4B = Worksheets("sheet4").Range("B1") '选择sheet4 B列
arr4B = Worksheets("sheet4").UsedRangearr5A = Worksheets("sheet5").Range("A1") '选择选择sheet5 A列
arr5A = Worksheets("sheet5").UsedRange
arr5B = Worksheets("sheet5").Range("B1") '选择选择sheet5 B列
arr5B = Worksheets("sheet5").UsedRangeDim A4Row As Long 'sheet4 列的行数
Dim A5Row As Long 'sheet5 A列的行数A4Row = Sheet4.Range("A" & Rows.Count).End(xlUp).Row 'Sheet4 A列不带空格的行数
A5Row = Sheet5.Range("A" & Rows.Count).End(xlUp).Row 'Sheet5 A列不带空格的行数Set d = CreateObject("Scripting.Dictionary") '设置个字典类型的容器,d(s)是字典,键值对,键是姓名,值是名次
ReDim brrc(1 To A4Row, 1) '设置新的待写入C列数
ReDim brrd(1 To A4Row, 1) '设置新的待写入D列数For n = 2 To A5Row '循环Sheet5 A列,从第二行开始,看你需要从哪个行开始s = arr5A(n, 1) '将从第二行开始的读取姓名d(s) = arr5B(n, 2) '将姓名和名次组装成键值对存储在d中
NextFor n = 2 To A4Row '循环Sheet4 A列数据,从第二行开始,看你需要从哪个行开始s = arr4A(n, 1) '将从第二行开始的读取姓名If d.Exists(s) Then '如果s这个值不在字典d里,说明不重复,就加入brr()第一列中,如果单元格是空格就跳过i = i + 1brrc(i, 1) = d(s) '根据名字取出对应的期末名次存入brrc,代表C列数据End If
NextFor n = 2 To A4Row '循环B列数据,从第二行开始,看你需要从哪个行开始sb = arr4A(n, 2) '将从第二行开始的数据全部塞入s里j = j + 1sc = brrc(j, 1)brrd(j, 1) = sb - sc 'B列减去C列值,代表进退值
Next
Worksheets("sheet4").[C2].Resize(UBound(brrc), 1) = Application.Index(brrc, 0, 2)
Worksheets("sheet4").[D2].Resize(UBound(brrd), 1) = Application.Index(brrd, 0, 2)
End Sub
最终运行效果:
Excel宏编程代码,根据混合的名次合并计算进退值相关推荐
- 【016】Excel宏编程的交互解析(Cells)_002_#VBA
Cells 1 交互元件 Cells 解析 1.1 元素解读 1.2 操作后缀 2 对列进行编号 3 说明 1 交互元件 Cells 解析 1.1 元素解读 Cells(RowIndex,Column ...
- excel 宏编程_在 Excel 中使用 Python 开发宏脚本
点击上方蓝字,每天一起学 Python,文末领送书福利 文 | varlemon 编辑 | EarlGrey 推荐 | 编程派公众号(ID:codingpy) 之前发文介绍过一个叫GridStudio ...
- EXCEL宏编程纪念
不久前被叫去编写宏,这EXCEL宏真是麻烦! 可能以后不会再遇到有编写宏的经历了,故而贴出来以做个纪念: Sub direct_Price() ' 'query_dir_volume '宏由 颜清国编 ...
- 炸裂!微软重磅推出混合现实平台 Mesh、基于 Excel 的低代码语言 Power Fx,Ignite 2021 太精彩!...
作者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) "一开始,这就是混合现实的梦想." 在微软 Ignite 2021 大会上,微软 HoloLens 之父 Alex ...
- WPS JS宏编程是什么
WPS JS宏编程是一种基于JavaScript语言的自动化办公技术,可以通过编写脚本来自动化执行一些重复性的任务,例如格式化文本.生成报表.处理数据等.本教程将介绍WPS JS宏编程的基本概念.语法 ...
- js宏编程--wps开放平台介绍
在上篇<初识Excel的JS环境WPS宏编程>中提到,JS宏编程有2个比较好的参考资料,一个是官方的WPS开发平台介绍,另一个则是ES6教程,本文就WPS开发平台关于JS宏编程的重点做一个 ...
- makefile使用宏及用法$(宏标识符) $(cc)_宏编程的艺术
微信限制:不能放置链接,代码样式比较奇怪,发布后不能更新... 推荐 阅读原文: 写在前面 之前写过几篇关于 C/C++ 宏 (macro) 和 C++ 元编程 (metaprogramming) 的 ...
- 用EXCEL宏编写坐标转换
用EXCEL宏编写坐标转换* 网上查了很多坐标转换代码和各种参数,很多不一致或不完整,自编VBA坐标转换,进行代码验证,和专业的坐标转换软件比较,如常见的笑脸坐标转换软件COORD GM和中海达的Co ...
- cpu java poi 导出_java基于poi导出excel透视表代码实例
这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通 ...
- C#中创建、打开、读取、写入、保存Excel的一般性代码
1 Excel对象 微软的Excel对象模型包括了128个不同的对象,从矩形,文本框等简单的对象到透视表,图表等复杂的对象.下面我们简单介绍一下其中最重要,也是用得最多的四个对象. (1) Appli ...
最新文章
- 二值化算法OTSU源码解析
- java arraylist 序列化_专题二、ArrayList序列化技术细节详解
- 深入理解Emoji(三) —— Emoji详解
- Java基础语法十二 泛型程序设计
- 利用计算机制作多媒体最后一步,福建省高中会考 多媒体技术应用 选择题专项练习十一(201206)(有答案)...
- ADO连接各种数据库
- java 8的一些新用法
- %3c %3e 转换html,防止基本的XSS攻击 滤掉HTML标签
- 这款IDEA插件刷爆了技术群,群友:这用起来真酸爽~
- (X)HTML Strict 下的嵌套规则
- TCPIP详解Protocol 读书笔记(一) TCP协议概述
- ZZULIOJ.1137: 查找最大元素
- 如何写出干净整洁的代码
- 网页视频改变加速倍数的方法
- python 读取zip包中的数据
- 网格画法:原生 Canvas 画网格,可拖动、可放大缩小、并带有坐标系 0 0 位置辅助线
- Oracle-SQL中日期加减一年的写法
- 智能可视化门铃方案调研报告
- git屏蔽某些文件/文件夹
- WIN10 + Tensorflow1.12 + Cmake编译 + Bazel编译