数据分析师 - 面试题(二)

使用VBA脚本实现Excel中的功能统计:

(1) 统计总分大于180分的学生人数

(2) 统计数学大于语文成绩的人数

(3) 将各科成绩 < 60 分的数据标记底色为红色,字体加粗

成绩单
学生编号 语文 数学 英文
st1 66 95 55
st2 91 74 46
st3 96 97 32
st4 47 52 93
st5 34 41 53
st6 65 91 92



 

 

 

 

 

 

解:

(1)

Sub 宏1()
    Dim n&, i&, j&, arr, a&, b&, c&
    arr = ActiveSheet.UsedRange
    a = ActiveSheet.Rows(1).Find("语文").Column
    b = ActiveSheet.Rows(1).Find("数学").Column
    c = ActiveSheet.Rows(1).Find("英文").Column
    n = 0
    
    For i = 2 To UBound(arr)
        j = Val(arr(i, a)) + Val(arr(i, b)) + Val(arr(i, c))
        If j > 180 Then
        n = n + 1
        End If
    Next
    
    MsgBox "总分大于180分的人数为:" & n
End Sub

(2)

Sub 宏2()
    Dim n&, i&, arr, a&, b&
    arr = ActiveSheet.UsedRange
    a = ActiveSheet.Rows(1).Find("数学").Column
    b = ActiveSheet.Rows(1).Find("语文").Column
    n = 0
    
    For i = 2 To UBound(arr)
        If Val(arr(i, a)) > Val(arr(i, b)) Then
        n = n + 1
        End If
    Next
    
    MsgBox "数学成绩大于语文的人数为:" & n
End Sub

(3)

Sub 宏3()
    
    Dim t As Range
    Set t = ActiveSheet.UsedRange
    
    t.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:="=60"
    t.FormatConditions(1).Font.Bold = True
    t.FormatConditions(1).Interior.ColorIndex = 3
   
    MsgBox "格式修改完毕"  
End Sub

 

 

猜你喜欢

转载自www.cnblogs.com/eternal-immortal/p/9489688.html