原始的期中名次,保存在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宏编程代码,根据混合的名次合并计算进退值相关推荐

  1. 【016】Excel宏编程的交互解析(Cells)_002_#VBA

    Cells 1 交互元件 Cells 解析 1.1 元素解读 1.2 操作后缀 2 对列进行编号 3 说明 1 交互元件 Cells 解析 1.1 元素解读 Cells(RowIndex,Column ...

  2. excel 宏编程_在 Excel 中使用 Python 开发宏脚本

    点击上方蓝字,每天一起学 Python,文末领送书福利 文 | varlemon 编辑 | EarlGrey 推荐 | 编程派公众号(ID:codingpy) 之前发文介绍过一个叫GridStudio ...

  3. EXCEL宏编程纪念

    不久前被叫去编写宏,这EXCEL宏真是麻烦! 可能以后不会再遇到有编写宏的经历了,故而贴出来以做个纪念: Sub direct_Price() ' 'query_dir_volume '宏由 颜清国编 ...

  4. 炸裂!微软重磅推出混合现实平台 Mesh、基于 Excel 的低代码语言 Power Fx,Ignite 2021 太精彩!...

    作者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) "一开始,这就是混合现实的梦想." 在微软 Ignite 2021 大会上,微软 HoloLens 之父 Alex ...

  5. WPS JS宏编程是什么

    WPS JS宏编程是一种基于JavaScript语言的自动化办公技术,可以通过编写脚本来自动化执行一些重复性的任务,例如格式化文本.生成报表.处理数据等.本教程将介绍WPS JS宏编程的基本概念.语法 ...

  6. js宏编程--wps开放平台介绍

    在上篇<初识Excel的JS环境WPS宏编程>中提到,JS宏编程有2个比较好的参考资料,一个是官方的WPS开发平台介绍,另一个则是ES6教程,本文就WPS开发平台关于JS宏编程的重点做一个 ...

  7. makefile使用宏及用法$(宏标识符) $(cc)_宏编程的艺术

    微信限制:不能放置链接,代码样式比较奇怪,发布后不能更新... 推荐 阅读原文: 写在前面 之前写过几篇关于 C/C++ 宏 (macro) 和 C++ 元编程 (metaprogramming) 的 ...

  8. 用EXCEL宏编写坐标转换

    用EXCEL宏编写坐标转换* 网上查了很多坐标转换代码和各种参数,很多不一致或不完整,自编VBA坐标转换,进行代码验证,和专业的坐标转换软件比较,如常见的笑脸坐标转换软件COORD GM和中海达的Co ...

  9. cpu java poi 导出_java基于poi导出excel透视表代码实例

    这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通 ...

  10. C#中创建、打开、读取、写入、保存Excel的一般性代码

    1 Excel对象 微软的Excel对象模型包括了128个不同的对象,从矩形,文本框等简单的对象到透视表,图表等复杂的对象.下面我们简单介绍一下其中最重要,也是用得最多的四个对象. (1) Appli ...

最新文章

  1. 二值化算法OTSU源码解析
  2. java arraylist 序列化_专题二、ArrayList序列化技术细节详解
  3. 深入理解Emoji(三) —— Emoji详解
  4. Java基础语法十二 泛型程序设计
  5. 利用计算机制作多媒体最后一步,福建省高中会考 多媒体技术应用 选择题专项练习十一(201206)(有答案)...
  6. ADO连接各种数据库
  7. java 8的一些新用法
  8. %3c %3e 转换html,防止基本的XSS攻击 滤掉HTML标签
  9. 这款IDEA插件刷爆了技术群,群友:这用起来真酸爽~
  10. (X)HTML Strict 下的嵌套规则
  11. TCPIP详解Protocol 读书笔记(一) TCP协议概述
  12. ZZULIOJ.1137: 查找最大元素
  13. 如何写出干净整洁的代码
  14. 网页视频改变加速倍数的方法
  15. python 读取zip包中的数据
  16. 网格画法:原生 Canvas 画网格,可拖动、可放大缩小、并带有坐标系 0 0 位置辅助线
  17. Oracle-SQL中日期加减一年的写法
  18. 智能可视化门铃方案调研报告
  19. git屏蔽某些文件/文件夹
  20. WIN10 + Tensorflow1.12 + Cmake编译 + Bazel编译

热门文章

  1. 三目表达式的错误使用
  2. 免费好用的判定节假日API来了
  3. pr剪辑打开多个项目_Pr入门之十一:基本图形面板
  4. Java中判断两个Date是否是同一天
  5. Java setlocale方法_Java Configuration.setLocale方法代碼示例
  6. 机器人焊钳选型_点焊机器人焊钳的分类及区别
  7. SpringAOP简单案例
  8. 短信API接口怎么调用?
  9. DB2错误SQL1585N
  10. php怎么启动服务,如何打开php服务