20181013xlVba计算优秀率及合格率

news/2024/7/5 6:47:39
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

  

转载于:https://www.cnblogs.com/nextseven/p/9784093.html


http://www.niftyadmin.cn/n/3354291.html

相关文章

采用路缘石成型机在公路建设中与人工调整两相配合

本来在公路建设阶段采用人工来制作的传统模式经过验证&#xff0c;发现效率和质量在同步于机械设备的建设方案中&#xff0c;是在根本上有着不足&#xff0c;通过连续的布置与实施&#xff0c;则可以确认机械设备在建设中对于效率和质量的把控是非常有帮助的。 在对于整体直线作…

THS爬虫岗位面试总结

公司&#xff1a;THS 岗位&#xff1a;python 爬虫 1.笔试部分共6题&#xff1a;函数的默认参数、深拷贝与浅拷贝、list转set、正则表达式、最大回文子串、网络请求各个过程 2.面试部分&#xff1a; 2.1scrapy的各个模块及工作流程、scrapy中间件、sql语法 答&#xff1a; 2.2从…

最新的Hibernate(5.0.2.Final)里配置proxool连接池详细步骤

由于新版Hibernatet的lib/required/下的jar包和旧版的有很大的不同&#xff0c;因此配置proxool数据库连接池时有了些许的不同。在此&#xff0c;我写下配置的详细步骤以供其他童鞋参考 一 添加所需jar包到WEB-INF/lib下 分别是&#xff1a;hibernate-release-5.0.2.Final/lib/…

计数排序,基数排序,桶排序算法

计数排序&#xff0c;基数排序&#xff0c;桶排序算法 计数排序算法&#xff1a; -------------------------------------------------------------template <class Type>void CountingSort(int a[],int b[],int k){int i,*c;c(int*)malloc(sizeof(int)*k);for(i0;i<…

CSS颜色表示法和颜色表

颜色表示法 color name&#xff1a;颜色的名称&#xff1b; color&#xff1a;red&#xff1b; 直接用英文意思来写&#xff0c;但是数量有限&#xff0c;不支持透明颜色 十六进制方式&#xff1a; color&#xff1a;#191d11&#xff1b;所有#开头的都是16进制 rgb&#xff0…

水泥混凝土摊铺机对于建设中模具的调整和效率的均衡

把对于拦水带等路面外侧设置的构筑建设提速&#xff0c;归根结底要将施工作业的性能提升起来&#xff0c;相比于建设路面而言&#xff0c;旁边的建设难度和耗费的精力可一点都不少&#xff0c;能够适用在项目中的良好性能的机械设备很难得。 模具的重要功能在于针对既有的施工步…

设计模式之观察者

观察者模式 Observer定义 观察者模式定义了对象之间的一对多依赖&#xff0c;这样一来&#xff0c;当一个对象改变状态时&#xff0c;他的所有依赖者都会收到通知&#xff0c;并自动更新。   说明&#xff1a; &#xff08;1&#xff09;对象的一对多的关系中&#xff0c;&qu…

WebService和Http的POST和GET请求区别和示例

web service&#xff08;SOAP&#xff09;Webservice的一个最基本的目的就是提供在各个不同平台的不同应用系统的协同工作能力。Web service 就是一个应用程序&#xff0c;它向外界暴露出一个能够通过Web进行调用的API。SOAP是一种简单基于xml的轻量协议&#xff0c;用户web上交…