Excel VBA 统分

“查看排名”按钮代码:

 1 Private Sub CommandButton1_Click()
 2 
 3 Dim cq(1000) '保存抽签序号
 4 Dim bj(1000) '保存参赛班级
 5 Dim gq(1000) '保存参赛项目
 6 Dim df(1000) '保存最终得分
 7 Dim c, b, g, d '临时变量
 8 Dim num    '存放参数对象数量
 9 
10 '获取A3-后面的非空行数
11 num = Application.WorksheetFunction.CountA(Sheets("统分").Range("A3:A1002"))
12 'MsgBox num
13 
14 '获取抽签序号、班级、项目和得分
15 For i = 1 To num
16    cq(i) = Sheet3.Cells(i + 3, 1)
17    bj(i) = Sheet3.Cells(i + 3, 2)
18    gq(i) = Sheet3.Cells(i + 3, 3)
19    If Sheet3.Cells(i + 3, 27) = "" Then
20      df(i) = 0
21    Else
22      df(i) = Sheet3.Cells(i + 3, 27)
23    End If
24 Next i
25 
26 '按照得分按大到小排序
27 For i = 1 To num - 1
28    For j = i + 1 To num
29        If df(i) <= df(j) Then
30            
31            d = df(i)   '交换最终得分
32            df(i) = df(j)
33            df(j) = d
34            
35            c = cq(i)  '交换抽签序号
36            cq(i) = cq(j)
37            cq(j) = c
38            
39            b = bj(i)  '交换参赛班级
40            bj(i) = bj(j)
41            bj(j) = b
42            
43            g = gq(i)  '交换参赛项目
44            gq(i) = gq(j)
45            gq(j) = g
46         
47        End If
48    Next j
49 Next i
50 
51 '将抽签序号、班级、项目和得分填入工作表4
52 For i = 1 To num
53     Sheet4.Cells(i + 2, 1) = cq(i)
54     Sheet4.Cells(i + 2, 2) = bj(i)
55     Sheet4.Cells(i + 2, 3) = gq(i)
56     Sheet4.Cells(i + 2, 4) = df(i)
57 Next i
58 
59 '按照得分排名(中国式)
60 Sheet4.Cells(3, 5) = 1 '第1个班级
61 For i = 2 To num        '第2-num班级
62    If Sheet4.Cells(i + 2, 4) = Sheet4.Cells(i + 1, 4) Then
63       Sheet4.Cells(i + 2, 5) = Sheet4.Cells(i + 1, 5)
64    Else
65       Sheet4.Cells(i + 2, 5) = Sheet4.Cells(i + 1, 5) + 1
66    End If
67 Next i
68 
69 For i = 1 To num
70     If Sheet4.Cells(i + 2, 4) = 0 Then
71         Sheet4.Cells(i + 2, 1) = ""
72         Sheet4.Cells(i + 2, 2) = ""
73         Sheet4.Cells(i + 2, 3) = ""
74         Sheet4.Cells(i + 2, 4) = ""
75         Sheet4.Cells(i + 2, 5) = ""
76     End If
77 Next i
78  Sheets("结果").Select
79  
80 End Sub

“清空数据”代码:

 1 Private Sub CommandButton2_Click()
 2  
 3   Dim flag
 4   flag = MsgBox("请问您确认要清空表数据吗?", 1)
 5   If flag = 1 Then
 6    
 7     Dim num1, num2   '存放参数对象数量
 8     
 9     '统分表数据清空
10     '获取A3-后面的非空行数
11     num1 = Application.WorksheetFunction.CountA(Sheets("统分").Range("A4:A1003"))
12     'MsgBox num
13     
14     '清空抽签序号到最后一个评委共23列num行数据
15     For i = 1 To num1
16        For j = 1 To 23
17           Sheet3.Cells(i + 3, j) = ""
18       Next j
19     Next i
20     
21    '结果表数据清空
22    '获取A3-后面的非空行数
23     num2 = Application.WorksheetFunction.CountA(Sheets("结果").Range("A3:A1002"))
24     
25     '清空抽签序号到排名共5列num行数据
26     For i = 1 To num2
27        For j = 1 To 5
28           Sheet4.Cells(i + 2, j) = ""
29        Next j
30     Next i
31   Else
32        MsgBox "您已取消清空表中数据~!"
33   End If
34 End Sub

“按序号显示”结果:

 1 Private Sub CommandButton2_Click()
 2 
 3 Dim cq(1000) '保存抽签序号
 4 Dim bj(1000) '保存参赛班级
 5 Dim gq(1000) '保存参赛项目
 6 Dim df(1000) '保存最终得分
 7 Dim pm(1000) '排名
 8 Dim c, b, g, d '临时变量
 9 
10 Dim num    '存放参数对象数量
11 
12 '获取A列 A3-后面的非空行数
13 num = Application.WorksheetFunction.CountA(Sheets("结果").Range("A3:A1000"))
14 'MsgBox num
15 
16 '获取抽签序号、班级、项目和得分
17 For i = 1 To num
18    cq(i) = Sheet4.Cells(i + 2, 1)
19    bj(i) = Sheet4.Cells(i + 2, 2)
20    gq(i) = Sheet4.Cells(i + 2, 3)
21    df(i) = Sheet4.Cells(i + 2, 4)
22    pm(i) = Sheet4.Cells(i + 2, 5)
23 
24 Next i
25 
26 '按照抽签小到大排序
27 For i = 1 To num - 1
28    For j = i + 1 To num
29        If cq(i) >= cq(j) Then
30            
31            c = cq(i)  '交换抽签序号
32            cq(i) = cq(j)
33            cq(j) = c
34            
35            b = bj(i)  '交换参赛班级
36            bj(i) = bj(j)
37            bj(j) = b
38            
39            g = gq(i)  '交换参赛项目
40            gq(i) = gq(j)
41            gq(j) = g
42            
43            d = df(i)   '交换最终得分
44            df(i) = df(j)
45            df(j) = d
46            
47            p = pm(i)   '交换排名
48            pm(i) = pm(j)
49            pm(j) = p
50         
51        End If
52    Next j
53 Next i
54 
55 '将抽签序号、班级、项目和得分填入工作表4
56 For i = 1 To num
57     Sheet4.Cells(i + 2, 1) = cq(i)
58     Sheet4.Cells(i + 2, 2) = bj(i)
59     Sheet4.Cells(i + 2, 3) = gq(i)
60     Sheet4.Cells(i + 2, 4) = df(i)
61     Sheet4.Cells(i + 2, 5) = pm(i)
62 Next i
63 
64 
65 Range("A3").Select
66 End Sub

“按排名显示”结果:

 1 Private Sub CommandButton3_Click()
 2 
 3 Dim cq(1000) '保存抽签序号
 4 Dim bj(1000) '保存参赛班级
 5 Dim gq(1000) '保存参赛项目
 6 Dim df(1000) '保存最终得分
 7 Dim pm(1000) '排名
 8 Dim c, b, g, d '临时变量
 9 
10 Dim num    '存放参数对象数量
11 
12 '获取A列 A3-后面的非空行数
13 num = Application.WorksheetFunction.CountA(Sheets("结果").Range("A3:A1000"))
14 'MsgBox num
15 
16 '获取抽签序号、班级、项目和得分
17 For i = 1 To num
18    cq(i) = Sheet4.Cells(i + 2, 1)
19    bj(i) = Sheet4.Cells(i + 2, 2)
20    gq(i) = Sheet4.Cells(i + 2, 3)
21    df(i) = Sheet4.Cells(i + 2, 4)
22    pm(i) = Sheet4.Cells(i + 2, 5)
23 
24 Next i
25 
26 '按照名次小到大排序
27 For i = 1 To num - 1
28    For j = i + 1 To num
29        If pm(i) >= pm(j) Then
30            
31            c = cq(i)  '交换抽签序号
32            cq(i) = cq(j)
33            cq(j) = c
34            
35            b = bj(i)  '交换参赛班级
36            bj(i) = bj(j)
37            bj(j) = b
38            
39            g = gq(i)  '交换参赛项目
40            gq(i) = gq(j)
41            gq(j) = g
42            
43            d = df(i)   '交换最终得分
44            df(i) = df(j)
45            df(j) = d
46            
47            p = pm(i)   '交换排名
48            pm(i) = pm(j)
49            pm(j) = p
50         
51        End If
52    Next j
53 Next i
54 
55 '将抽签序号、班级、项目和得分填入工作表4
56 For i = 1 To num
57     Sheet4.Cells(i + 2, 1) = cq(i)
58     Sheet4.Cells(i + 2, 2) = bj(i)
59     Sheet4.Cells(i + 2, 3) = gq(i)
60     Sheet4.Cells(i + 2, 4) = df(i)
61     Sheet4.Cells(i + 2, 5) = pm(i)
62 Next i
63 
64 
65 Range("A3").Select
66 End Sub

 

转载于:https://www.cnblogs.com/XH16/p/6514748.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
城市应急指挥系统是智慧城市建设的重要组成部分,旨在提高城市对突发事件的预防和处置能力。系统背景源于自然灾害和事故灾难频发,如汶川地震和日本大地震等,这些事件造成了巨大的人员伤亡和财产损失。随着城市化进程的加快,应急信息化建设面临信息资源分散、管理标准不统一等问题,需要通过统筹管理和技术创新来解决。 系统的设计思路是通过先进的技术手段,如物联网、射频识别、卫星定位等,构建一个具有强大信息感知和通信能力的网络和平台。这将促进不同部门和层次之间的信息共享、交流和整合,提高城市资源的利用效率,满足城市对各种信息的获取和使用需求。在“十二五”期间,应急信息化工作将依托这些技术,实现动态监控、风险管理、预警以及统一指挥调度。 应急指挥系统的建设目标是实现快速有效的应对各种突发事件,保障人民生命财产安全,减少社会危害和经济损失。系统将包括预测预警、模拟演练、辅助决策、态势分析等功能,以及应急值守、预案管理、GIS应用等基本应用。此外,还包括支撑平台的建设,如接警中心、视频会议、统一通信等基础设施。 系统的实施将涉及到应急网络建设、应急指挥、视频监控、卫星通信等多个方面。通过高度集成的系统,建立统一的信息接收和处理平台,实现多渠道接入和融合指挥调度。此外,还包括应急指挥中心基础平台建设、固定和移动应急指挥通信系统建设,以及应急队伍建设,确保能够迅速响应并有效处置各类突发事件。 项目的意义在于,它不仅是提升灾害监测预报水平和预警能力的重要科技支撑,也是实现预防和减轻重大灾害和事故损失的关键。通过实施城市应急指挥系统,可以加强社会管理和公共服务,构建和谐社会,为打造平安城市提供坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值