20181013xlVba计算优秀率及合格率
Sub 计算高一优秀合格率()
Dim Wb As Workbook
Dim Sht As Worksheet
Dim oSht As Worksheet
Dim dOs As Object 'OutStanding
Const SUBJECTS = "语文数学英语物理化学生物政治历史地理"
Set dOs = CreateObject("Scripting.Dictionary")
Set Wb = Application.ThisWorkbook
Set Sht = Wb.Worksheets("年级_本次成绩总表") With Sht
EndRow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row
EndCol = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
For j = 4 To EndCol
If InStr(SUBJECTS, .Cells(1, j).Text) > 0 Then
Subject = .Cells(1, j).Text
For i = 2 To EndRow
If .Cells(i, "Y").Value = "" Then
goal = .Cells(i, j).Value
Cls = .Cells(i, 3).Value
Key = Cls & ";" & Subject
If goal <> "" Then
If Not dOs.exists(Key) Then
If goal >= OsLine(Subject, 1) Then
os = 1
Else
os = 0
End If
If goal >= OsLine(Subject, 2) Then
pass = 1
Else
pass = 0
End If
dOs(Key) = Array(1, os, pass)
Else
Ar = dOs(Key)
Ar(0) = Ar(0) + 1
If goal >= OsLine(Subject, 1) Then Ar(1) = Ar(1) + 1
If goal >= OsLine(Subject, 2) Then Ar(2) = Ar(2) + 1
dOs(Key) = Ar
End If
End If
End If
Next i
End If
Next j
End With 'For Each OneKey In dOs.keys
'Ar = dOs(OneKey)
'Debug.Print OneKey; " "; Ar(0); " "; Ar(1); " "; Ar(2)
'Next Set Sht = Wb.Worksheets("年级_各科离均率")
With Sht
StartRow = 60
ClassCount = 20
SubjectCount = 10
.Cells(StartRow + 1, 2).Resize(ClassCount, SubjectCount).ClearContents
For j = 2 To SubjectCount + 1
Subject = .Cells(StartRow, j).Value
For i = StartRow + 1 To StartRow + 20
Cls = .Cells(i, 1).Value
Key = Cls & ";" & Subject
If dOs.exists(Key) Then
Ar = dOs(Key)
.Cells(i, j).Value = Format(Ar(1) / Ar(0), "0.0%")
End If
Next i
Next j StartRow = 84
ClassCount = 20
SubjectCount = 10
.Cells(StartRow + 1, 2).Resize(ClassCount, SubjectCount).ClearContents
For j = 2 To SubjectCount + 1
Subject = .Cells(StartRow, j).Value
For i = StartRow + 1 To StartRow + 20
Cls = .Cells(i, 1).Value
Key = Cls & ";" & Subject
If dOs.exists(Key) Then
Ar = dOs(Key)
.Cells(i, j).Value = Format(Ar(2) / Ar(0), "0.0%")
End If
Next i
Next j End With End Sub
Function OsLine(ByVal Subject As String, ByVal Level As Long) As Double 'Level 1优秀0合格
Select Case Subject
Case "语文", "数学", "英语"
If Level = 1 Then
OsLine = 120
Else
OsLine = 90
End If
Case Else
If Level = 1 Then
OsLine = 80
Else
OsLine = 60
End If
End Select
End Function
20181013xlVba计算优秀率及合格率的更多相关文章
- 分析业务模型-类图(Class Diagram)
分析业务模型-类图(Class Diagram) 分析业务模型-类图(Class Diagram)(上) 摘要:类图(Class Diagram)可能是用得最多的一种UML图.类图的基本语法并 ...
- 直击Huawei Mate 40产线背后的华为云IoT智能制造
摘要:数字孪生?在数字世界找到物理世界的设备! 本文分享自华为云社区<[云驻共创]Huawei Mate 40产线直击之华为云IoT智能制造助力工厂数字化转型>,原文作者:启明. Part ...
- 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧
记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- C语言 · 薪水计算
问题描述 编写一个程序,计算员工的周薪.薪水的计算是以小时为单位,如果在一周的时间内,员工工作的时间不超过40 个小时,那么他/她的总收入等于工作时间乘以每小时的薪水.如果员工工作的时间在40 到50 ...
- C语言 · 阶乘计算 · 基础练习
问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表 ...
- C语言 · 最大值与最小值计算
输入11个整数,计算它们的最大值和最小值. 样例输入 0 1 2 3 4 5 6 7 8 9 10 样例输出 10 0 #include<stdio.h> int main(){ ]; ...
- 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...
- SQL Server-聚焦计算列或计算列持久化查询性能(二十二)
前言 上一节我们详细讲解了计算列以及计算列持久化的问题,本节我们依然如前面讲解来看看二者查询性能问题,简短的内容,深入的理解,Always to review the basics. 持久化计算列比非 ...
随机推荐
- 【python51--__name__属性】
一.基础知识 1.__name__ == '__main__' 所有模块都有一个__name__属性,__name__的值取决于如何应用模块,在作为独立程序运行的时候,__name__属性的值是‘__ ...
- 安装旧版本的Firefox
在Ubuntu上安装就版本的Firefox,此处以version 46为例子: 1.删除已存在的Firefox, On CentOS/RHEL # yum remove firefox On Ubun ...
- HTTP 压力测试工具
http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般不会 ...
- p3398 仓鼠找sugar (LCA+讨论)
分情况讨论,结果是两条路径有公共点时,深度大的LCA在另一条路径上且另一条路径的两个端点至少其中一个的与深度大的LCA的LCA为那个深度大的LCA #include <cstdio> #i ...
- Visual Question Answering with Memory-Augmented Networks
Visual Question Answering with Memory-Augmented Networks 2018-05-15 20:15:03 Motivation: 虽然 VQA 已经取得 ...
- Java 11 究竟比 8 快了多少?看看这个基准测试
开源规划调度引擎 OptaPlanner 官网发布了一个 Java 11 GC 性能基准测试报告. 当前使用量最大的 Java 版本是 8,所以测试者用 Java 8 与 Java 11 进行对比测试 ...
- (转载)windows下安装配置Xampp
XAMPP是一款开源.免费的网络服务器软件,经过简单安装后,就可以在个人电脑上搭建服务器环境.本文为大家介绍Windows中安装XAMPP(Apache+Mysql+PHP)及使用方法及其相关问题的总 ...
- postgresql change table
--if cloumn exist SELECT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema='ent' A ...
- Global.asax.cs中相关方法
protected void Session_Start(object sender, EventArgs e) { #if DEBUG //debug 登陆默认设置 #endif } protect ...
- hihoCoder 1233 : Boxes(盒子)
hihoCoder #1233 : Boxes(盒子) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 There is a strange ...