Excel vba编程实例---中考体育评分

目录

一、起因       

二、什么是VBA

三、过程

四、数据处理

五、内容展示


一、起因       

        事情的起因是这样,寒假的时候和我的初中老师一起吃了一顿饭,期间体育老师好奇我能不能写一个“中考评分系统”,因为中考体育评分分为很多小区间,手算或者心算起来都特别麻烦,如果能写个程序就特别方便,直接输入计算就行。我觉得应该可行,但我那时候还不知道用什么写,我就到处问了很多人了解到了主要有两种方法:1.用python直接对excel进行操作; 2.用vba宏编程。

        第一种方法考虑到最终是要给老师用的,我想着可能还要教老师一些python操作,不论是从安装使用方面还是操作方面,对于不会python的老师可能不太方便。所以我就采用了第二种方法,但是我也并不知道vba如何去编写,所以就用了几天时间零零碎碎写了一个vba,最终的效果在我看来还不错。

二、什么是VBA

        VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。它也可说是一种应用程序视觉化的 Basic 脚本。

三、过程

        经历了痛苦的考试周过后,我问我的体育老师要来了中考体育的评分标准,分为非常多的小区间

 经过简单的学习后,我知道想要编写vba首先需要建立excel表格,接着在“开发工具”里找到“Visual Basic”这样就打开了vba的编程界面

 

然后在VBAProject中右键添加“模块”,这样在模块中就可以进行代码编程,为你的表格写一个插件,让表格中的数据按照你的方式来运行

 接着在右边的代码编辑框里写入下面语句:

Sub test()
    '在这里就可以编写你的主函数
End Sub

这样在Sub 和 End Sub中间就可以编写你的代码,学习一个新的语言我的主要方式是直接上手,直接开写,不知道语法格式什么的就开查。

首先介绍vba中的定义变量语句:

Dim i As Integer  'i是你的变量,Integer是变量类型

通过这一个语句相信大家就已经明白了vba变量的定义的基本格式

然后介绍for循环语句:

For i = 1 To 100 
    '循环内容
Next i 

这个语句的作用是将i从1循环到100,看到这里我觉得vba的格式有点像html的编写格式,条件或者是循环语句在编写上都会有一个“上下界”,代码内容都在“上下界”里面编写

if else语句:

If xxx then
    '内容
End If

If xxx then 
    '内容
Else
    '内容
End If

If xxx then 
    '内容
Elseif xxx then 
    '内容
Elseif xxx then
    '内容
Else 
    '内容
End If

从上往下分别介绍了if语句,if else语句,和else if语句的编写方法

 vba中函数的编写方法:

Function getnum(str As String) As Integer  ’As Integer表示函数返回值的类型
    '可以通过getnum = x 这种语句来设置函数的返回值是什么
    '其中函数的传参语句可以通过 str As xxx来定义参数类型,或者直接str不用添加任何说明
End Function

事实上我编写的vba宏就包含了这些基本语句,接下来通过一些自定义函数或者是系统自带函数,简单的ifelse语句,for循环语句就可以实现

四、数据处理

        首先定义表头,我的表头定义如下:

        如何获取表格中有多少行数据呢,我想的是既然是评分系统,那么一个人肯定有姓名,我的方法就是先遍历“姓名”这一列,直到“姓名”没有数据就退出循环,这样就获取到了有多少行数据:

    Dim isblank As Boolean
    Dim i As Integer
    Dim tot As Integer
    tot = 0
    For i = 5 To 10000
        isblank = Cells(i, 1).Value = ""
        If isblank Then
            Exit For
        Else
            tot = tot + 1
        End If
    Next i
    'MsgBox "共有" & tot & "组数据"

        这段代码里面的tot就是表格中总共有几行数据

紧接着第二个难题我认识是如何处理“跑步成绩”的问题,跑步成绩通常情况下我们都写成几分几秒,我的方法是在表格中填写字符串,格式为(x'xx),然后通过字符串读取,再将字符串分为多少分和多少秒,将跑步成绩最终都化为多少秒来进行比较。那么如何进行字符串的处理呢,我的方法比较简单粗暴,考虑到数据的通常一般性,很少有人1000m能跑十分钟以上,所以我就用了left函数来获取“分”,然后用mid函数获取到字符串后两位来获取“秒”:

Function opchangpao(str As String) As Integer
    Dim tmp1 As String
    Dim tmp2 As String
    tmp1 = Left(str, 1)    'left(字符串,长度)
    tmp2 = Mid(str, 3, 2) 'mid(字符串,起始位置,长度)
    Dim t1
    Dim t2
    t1 = CDbl(tmp1)
    t2 = CDbl(tmp2)
    opchangpao = t1 * 60 + t2
End Function

然后通过系统自带的函数CDbl或者CInt就可以将字符串转为数字,这样就完成了跑步成绩数据的处理。至此,对于其他数据的处理都大同小异,不多赘述。

因为评分分为很多小区间,所以可能还得对评分区间进行很多if else 的判断,这是编写这个宏最麻烦的地方,这里就给一个跑步判断让大家感受一下:

Function boy_run_solve(tmp) As Double
    If tmp <= 220 Then
        boy_run_solve = 20
    ElseIf tmp <= 221 Then
        boy_run_solve = 19.8
    ElseIf tmp <= 222 Then
        boy_run_solve = 19.6
    ElseIf tmp <= 223 Then
        boy_run_solve = 19.4
    ElseIf tmp <= 224 Then
        boy_run_solve = 19.2
    ElseIf tmp <= 225 Then
        boy_run_solve = 19#
    ElseIf tmp <= 226 Then
        boy_run_solve = 18.8
    ElseIf tmp <= 227 Then
        boy_run_solve = 18.6
    ElseIf tmp <= 228 Then
        boy_run_solve = 18.4
    ElseIf tmp <= 229 Then
        boy_run_solve = 18.2
    ElseIf tmp <= 230 Then
        boy_run_solve = 18#
    ElseIf tmp <= 232 Then
        boy_run_solve = 17.7
    ElseIf tmp <= 234 Then
        boy_run_solve = 17.4
    ElseIf tmp <= 237 Then
        boy_run_solve = 17#
    ElseIf tmp <= 239 Then
        boy_run_solve = 16.7
    ElseIf tmp <= 242 Then
        boy_run_solve = 16.4
    ElseIf tmp <= 245 Then
        boy_run_solve = 16#
    ElseIf tmp <= 250 Then
        boy_run_solve = 15.6
    ElseIf tmp <= 255 Then
        boy_run_solve = 15.2
    ElseIf tmp <= 260 Then
        boy_run_solve = 14.8
    ElseIf tmp <= 265 Then
        boy_run_solve = 14.4
    ElseIf tmp <= 270 Then
        boy_run_solve = 14#
    ElseIf tmp <= 275 Then
        boy_run_solve = 13.6
    ElseIf tmp <= 280 Then
        boy_run_solve = 13.2
    ElseIf tmp <= 285 Then
        boy_run_solve = 12.8
    ElseIf tmp <= 290 Then
        boy_run_solve = 12.4
    ElseIf tmp <= 295 Then
        boy_run_solve = 12#
    ElseIf tmp <= 305 Then
        boy_run_solve = 11.5
    ElseIf tmp <= 315 Then
        boy_run_solve = 10#
    ElseIf tmp <= 325 Then
        boy_run_solve = 9#
    ElseIf tmp <= 335 Then
        boy_run_solve = 8#
    ElseIf tmp <= 345 Then
        boy_run_solve = 7#
    ElseIf tmp <= 355 Then
        boy_run_solve = 6#
    ElseIf tmp <= 365 Then
        boy_run_solve = 5#
    ElseIf tmp <= 375 Then
        boy_run_solve = 4#
    ElseIf tmp <= 385 Then
        boy_run_solve = 3#
    Else
        boy_run_solve = 0#
    End If
End Function

五、内容展示

        接着对表格和数据进行一些处理美化,就完成了这次宏编程:

        右上角是一个宏按钮,点击就可以运行宏

 

 

Function getnum(str As String) As Integer
    If Len(str) = 1 Then
        If str = "0" Then
            getnum = 0
        End If
        If str = "1" Then
            getnum = 1
        End If
        If str = "2" Then
            getnum = 2
        End If
        If str = "3" Then
            getnum = 3
        End If
        If str = "4" Then
            getnum = 4
        End If
        If str = "5" Then
            getnum = 5
        End If
        If str = "6" Then
            getnum = 6
        End If
        If str = "7" Then
            getnum = 7
        End If
        If str = "8" Then
            getnum = 8
        End If
        If str = "9" Then
            getnum = 9
        End If
    End If
End Function

Function opchangpao(str As String) As Integer
    Dim tmp1 As String
    Dim tmp2 As String
    tmp1 = Left(str, 1)
    tmp2 = Mid(str, 3, 2)
    Dim t1
    Dim t2
    t1 = CDbl(tmp1)
    t2 = CDbl(tmp2)
    opchangpao = t1 * 60 + t2
End Function

Function boy_run_solve(tmp) As Double
    If tmp <= 220 Then
        boy_run_solve = 20
    ElseIf tmp <= 221 Then
        boy_run_solve = 19.8
    ElseIf tmp <= 222 Then
        boy_run_solve = 19.6
    ElseIf tmp <= 223 Then
        boy_run_solve = 19.4
    ElseIf tmp <= 224 Then
        boy_run_solve = 19.2
    ElseIf tmp <= 225 Then
        boy_run_solve = 19#
    ElseIf tmp <= 226 Then
        boy_run_solve = 18.8
    ElseIf tmp <= 227 Then
        boy_run_solve = 18.6
    ElseIf tmp <= 228 Then
        boy_run_solve = 18.4
    ElseIf tmp <= 229 Then
        boy_run_solve = 18.2
    ElseIf tmp <= 230 Then
        boy_run_solve = 18#
    ElseIf tmp <= 232 Then
        boy_run_solve = 17.7
    ElseIf tmp <= 234 Then
        boy_run_solve = 17.4
    ElseIf tmp <= 237 Then
        boy_run_solve = 17#
    ElseIf tmp <= 239 Then
        boy_run_solve = 16.7
    ElseIf tmp <= 242 Then
        boy_run_solve = 16.4
    ElseIf tmp <= 245 Then
        boy_run_solve = 16#
    ElseIf tmp <= 250 Then
        boy_run_solve = 15.6
    ElseIf tmp <= 255 Then
        boy_run_solve = 15.2
    ElseIf tmp <= 260 Then
        boy_run_solve = 14.8
    ElseIf tmp <= 265 Then
        boy_run_solve = 14.4
    ElseIf tmp <= 270 Then
        boy_run_solve = 14#
    ElseIf tmp <= 275 Then
        boy_run_solve = 13.6
    ElseIf tmp <= 280 Then
        boy_run_solve = 13.2
    ElseIf tmp <= 285 Then
        boy_run_solve = 12.8
    ElseIf tmp <= 290 Then
        boy_run_solve = 12.4
    ElseIf tmp <= 295 Then
        boy_run_solve = 12#
    ElseIf tmp <= 305 Then
        boy_run_solve = 11.5
    ElseIf tmp <= 315 Then
        boy_run_solve = 10#
    ElseIf tmp <= 325 Then
        boy_run_solve = 9#
    ElseIf tmp <= 335 Then
        boy_run_solve = 8#
    ElseIf tmp <= 345 Then
        boy_run_solve = 7#
    ElseIf tmp <= 355 Then
        boy_run_solve = 6#
    ElseIf tmp <= 365 Then
        boy_run_solve = 5#
    ElseIf tmp <= 375 Then
        boy_run_solve = 4#
    ElseIf tmp <= 385 Then
        boy_run_solve = 3#
    Else
        boy_run_solve = 0#
    End If
End Function

Function girl_run_solve(tmp) As Double
    If tmp <= 205 Then
        girl_run_solve = 20
    ElseIf tmp <= 206 Then
        girl_run_solve = 19.8
    ElseIf tmp <= 207 Then
        girl_run_solve = 19.6
    ElseIf tmp <= 208 Then
        girl_run_solve = 19.4
    ElseIf tmp <= 210 Then
        girl_run_solve = 19.2
    ElseIf tmp <= 212 Then
        girl_run_solve = 19#
    ElseIf tmp <= 213 Then
        girl_run_solve = 18.8
    ElseIf tmp <= 214 Then
        girl_run_solve = 18.6
    ElseIf tmp <= 215 Then
        girl_run_solve = 18.4
    ElseIf tmp <= 217 Then
        girl_run_solve = 18.2
    ElseIf tmp <= 219 Then
        girl_run_solve = 18#
    ElseIf tmp <= 221 Then
        girl_run_solve = 17.7
    ElseIf tmp <= 224 Then
        girl_run_solve = 17.4
    ElseIf tmp <= 227 Then
        girl_run_solve = 17#
    ElseIf tmp <= 229 Then
        girl_run_solve = 16.7
    ElseIf tmp <= 232 Then
        girl_run_solve = 16.4
    ElseIf tmp <= 235 Then
        girl_run_solve = 16#
    ElseIf tmp <= 240 Then
        girl_run_solve = 15.6
    ElseIf tmp <= 245 Then
        girl_run_solve = 15.2
    ElseIf tmp <= 250 Then
        girl_run_solve = 14.8
    ElseIf tmp <= 255 Then
        girl_run_solve = 14.4
    ElseIf tmp <= 260 Then
        girl_run_solve = 14#
    ElseIf tmp <= 265 Then
        girl_run_solve = 13.6
    ElseIf tmp <= 270 Then
        girl_run_solve = 13.2
    ElseIf tmp <= 275 Then
        girl_run_solve = 12.8
    ElseIf tmp <= 280 Then
        girl_run_solve = 12.4
    ElseIf tmp <= 285 Then
        girl_run_solve = 12#
    ElseIf tmp <= 290 Then
        girl_run_solve = 11.5
    ElseIf tmp <= 295 Then
        girl_run_solve = 10#
    ElseIf tmp <= 300 Then
        girl_run_solve = 9#
    ElseIf tmp <= 305 Then
        girl_run_solve = 8#
    ElseIf tmp <= 310 Then
        girl_run_solve = 7#
    ElseIf tmp <= 315 Then
        girl_run_solve = 6#
    ElseIf tmp <= 320 Then
        girl_run_solve = 5#
    ElseIf tmp <= 325 Then
        girl_run_solve = 4#
    ElseIf tmp <= 330 Then
        girl_run_solve = 3#
    Else
        girl_run_solve = 0#
    End If
End Function

Function boy_jump_solve(tmp) As Double
    If tmp >= 2.5 Then
        boy_jump_solve = 20#
    ElseIf tmp >= 2.49 Then
        boy_jump_solve = 19.8
    ElseIf tmp >= 2.48 Then
        boy_jump_solve = 19.6
    ElseIf tmp >= 2.47 Then
        boy_jump_solve = 19.4
    ElseIf tmp >= 2.46 Then
        boy_jump_solve = 19.2
    ElseIf tmp >= 2.45 Then
        boy_jump_solve = 19#
    ElseIf tmp >= 2.44 Then
        boy_jump_solve = 18.8
    ElseIf tmp >= 2.43 Then
        boy_jump_solve = 18.6
    ElseIf tmp >= 2.42 Then
        boy_jump_solve = 18.4
    ElseIf tmp >= 2.41 Then
        boy_jump_solve = 18.2
    ElseIf tmp >= 2.4 Then
        boy_jump_solve = 18#
    ElseIf tmp >= 2.38 Then
        boy_jump_solve = 17.7
    ElseIf tmp >= 2.36 Then
        boy_jump_solve = 17.4
    ElseIf tmp >= 2.33 Then
        boy_jump_solve = 17#
    ElseIf tmp >= 2.31 Then
        boy_jump_solve = 16.7
    ElseIf tmp >= 2.28 Then
        boy_jump_solve = 16.4
    ElseIf tmp >= 2.25 Then
        boy_jump_solve = 16#
    ElseIf tmp >= 2.21 Then
        boy_jump_solve = 15.6
    ElseIf tmp >= 2.17 Then
        boy_jump_solve = 15.2
    ElseIf tmp >= 2.13 Then
        boy_jump_solve = 14.8
    ElseIf tmp >= 2.09 Then
        boy_jump_solve = 14.4
    ElseIf tmp >= 2.05 Then
        boy_jump_solve = 14#
    ElseIf tmp >= 2.01 Then
        boy_jump_solve = 13.6
    ElseIf tmp >= 1.97 Then
        boy_jump_solve = 13.2
    ElseIf tmp >= 1.93 Then
        boy_jump_solve = 12.8
    ElseIf tmp >= 1.89 Then
        boy_jump_solve = 12.4
    ElseIf tmp >= 1.85 Then
        boy_jump_solve = 12#
    ElseIf tmp >= 1.83 Then
        boy_jump_solve = 11.5
    ElseIf tmp >= 1.8 Then
        boy_jump_solve = 10#
    ElseIf tmp >= 1.78 Then
        boy_jump_solve = 9#
    ElseIf tmp >= 1.75 Then
        boy_jump_solve = 8#
    ElseIf tmp >= 1.73 Then
        boy_jump_solve = 7#
    ElseIf tmp >= 1.7 Then
        boy_jump_solve = 6#
    ElseIf tmp >= 1.68 Then
        boy_jump_solve = 5#
    ElseIf tmp >= 1.65 Then
        boy_jump_solve = 4#
    ElseIf tmp >= 1.63 Then
        boy_jump_solve = 3#
    Else
        boy_jump_solve = 0#
    End If
    
End Function

Function girl_jump_solve(tmp) As Double
    If tmp >= 2.02 Then
        girl_jump_solve = 20#
    ElseIf tmp >= 2.01 Then
        girl_jump_solve = 19.8
    ElseIf tmp >= 2# Then
        girl_jump_solve = 19.6
    ElseIf tmp >= 1.99 Then
        girl_jump_solve = 19.4
    ElseIf tmp >= 1.98 Then
        girl_jump_solve = 19.2
    ElseIf tmp >= 1.96 Then
        girl_jump_solve = 19#
    ElseIf tmp >= 1.95 Then
        girl_jump_solve = 18.8
    ElseIf tmp >= 1.94 Then
        girl_jump_solve = 18.6
    ElseIf tmp >= 1.93 Then
        girl_jump_solve = 18.4
    ElseIf tmp >= 1.92 Then
        girl_jump_solve = 18.2
    ElseIf tmp >= 1.9 Then
        girl_jump_solve = 18#
    ElseIf tmp >= 1.88 Then
        girl_jump_solve = 17.7
    ElseIf tmp >= 1.86 Then
        girl_jump_solve = 17.4
    ElseIf tmp >= 1.83 Then
        girl_jump_solve = 17#
    ElseIf tmp >= 1.81 Then
        girl_jump_solve = 16.7
    ElseIf tmp >= 1.79 Then
        girl_jump_solve = 16.4
    ElseIf tmp >= 1.76 Then
        girl_jump_solve = 16#
    ElseIf tmp >= 1.73 Then
        girl_jump_solve = 15.6
    ElseIf tmp >= 1.7 Then
        girl_jump_solve = 15.2
    ElseIf tmp >= 1.67 Then
        girl_jump_solve = 14.8
    ElseIf tmp >= 1.64 Then
        girl_jump_solve = 14.4
    ElseIf tmp >= 1.61 Then
        girl_jump_solve = 14#
    ElseIf tmp >= 1.58 Then
        girl_jump_solve = 13.6
    ElseIf tmp >= 1.55 Then
        girl_jump_solve = 13.2
    ElseIf tmp >= 1.52 Then
        girl_jump_solve = 12.8
    ElseIf tmp >= 1.49 Then
        girl_jump_solve = 12.4
    ElseIf tmp >= 1.46 Then
        girl_jump_solve = 12#
    ElseIf tmp >= 1.44 Then
        girl_jump_solve = 11.5
    ElseIf tmp >= 1.41 Then
        girl_jump_solve = 10#
    ElseIf tmp >= 1.39 Then
        girl_jump_solve = 9#
    ElseIf tmp >= 1.36 Then
        girl_jump_solve = 8#
    ElseIf tmp >= 1.34 Then
        girl_jump_solve = 7#
    ElseIf tmp >= 1.31 Then
        girl_jump_solve = 6#
    ElseIf tmp >= 1.29 Then
        girl_jump_solve = 5#
    ElseIf tmp >= 1.26 Then
        girl_jump_solve = 4#
    ElseIf tmp >= 1.24 Then
        girl_jump_solve = 3#
    Else
        girl_jump_solve = 0#
    End If
End Function

Function boy_skip_solve(tmp) As Double
    If tmp >= 180 Then
        boy_skip_solve = 20#
    ElseIf tmp >= 178 Then
        boy_skip_solve = 19.8
    ElseIf tmp >= 175 Then
        boy_skip_solve = 19.6
    ElseIf tmp >= 172 Then
        boy_skip_solve = 19.4
    ElseIf tmp >= 168 Then
        boy_skip_solve = 19.2
    ElseIf tmp >= 164 Then
        boy_skip_solve = 19#
    ElseIf tmp >= 160 Then
        boy_skip_solve = 18.8
    ElseIf tmp >= 155 Then
        boy_skip_solve = 18.6
    ElseIf tmp >= 150 Then
        boy_skip_solve = 18.4
    ElseIf tmp >= 145 Then
        boy_skip_solve = 18.2
    ElseIf tmp >= 140 Then
        boy_skip_solve = 18#
    ElseIf tmp >= 138 Then
        boy_skip_solve = 17.7
    ElseIf tmp >= 136 Then
        boy_skip_solve = 17.4
    ElseIf tmp >= 133 Then
        boy_skip_solve = 17#
    ElseIf tmp >= 129 Then
        boy_skip_solve = 16.7
    ElseIf tmp >= 125 Then
        boy_skip_solve = 16.4
    ElseIf tmp >= 120 Then
        boy_skip_solve = 16#
    ElseIf tmp >= 116 Then
        boy_skip_solve = 15.6
    ElseIf tmp >= 112 Then
        boy_skip_solve = 15.2
    ElseIf tmp >= 107 Then
        boy_skip_solve = 14.8
    ElseIf tmp >= 103 Then
        boy_skip_solve = 14.4
    ElseIf tmp >= 98 Then
        boy_skip_solve = 14#
    ElseIf tmp >= 93 Then
        boy_skip_solve = 13.6
    ElseIf tmp >= 86 Then
        boy_skip_solve = 13.2
    ElseIf tmp >= 80 Then
        boy_skip_solve = 12.8
    ElseIf tmp >= 73 Then
        boy_skip_solve = 12.4
    ElseIf tmp >= 64 Then
        boy_skip_solve = 12#
    ElseIf tmp >= 62 Then
        boy_skip_solve = 11.5
    ElseIf tmp >= 60 Then
        boy_skip_solve = 10#
    ElseIf tmp >= 57 Then
        boy_skip_solve = 9#
    ElseIf tmp >= 53 Then
        boy_skip_solve = 8#
    ElseIf tmp >= 50 Then
        boy_skip_solve = 7#
    ElseIf tmp >= 46 Then
        boy_skip_solve = 6#
    ElseIf tmp >= 42 Then
        boy_skip_solve = 5#
    ElseIf tmp >= 37 Then
        boy_skip_solve = 4#
    ElseIf tmp >= 33 Then
        boy_skip_solve = 3#
    Else
        boy_skip_solve = 0#
    End If
    
End Function

Function girl_skip_solve(tmp) As Double
    If tmp >= 172 Then
        girl_skip_solve = 20#
    ElseIf tmp >= 170 Then
        girl_skip_solve = 19.8
    ElseIf tmp >= 167 Then
        girl_skip_solve = 19.6
    ElseIf tmp >= 164 Then
        girl_skip_solve = 19.4
    ElseIf tmp >= 160 Then
        girl_skip_solve = 19.2
    ElseIf tmp >= 157 Then
        girl_skip_solve = 19#
    ElseIf tmp >= 153 Then
        girl_skip_solve = 18.8
    ElseIf tmp >= 148 Then
        girl_skip_solve = 18.6
    ElseIf tmp >= 143 Then
        girl_skip_solve = 18.4
    ElseIf tmp >= 138 Then
        girl_skip_solve = 18.2
    ElseIf tmp >= 133 Then
        girl_skip_solve = 18#
    ElseIf tmp >= 131 Then
        girl_skip_solve = 17.7
    ElseIf tmp >= 129 Then
        girl_skip_solve = 17.4
    ElseIf tmp >= 126 Then
        girl_skip_solve = 17#
    ElseIf tmp >= 122 Then
        girl_skip_solve = 16.7
    ElseIf tmp >= 118 Then
        girl_skip_solve = 16.4
    ElseIf tmp >= 113 Then
        girl_skip_solve = 16#
    ElseIf tmp >= 109 Then
        girl_skip_solve = 15.6
    ElseIf tmp >= 105 Then
        girl_skip_solve = 15.2
    ElseIf tmp >= 100 Then
        girl_skip_solve = 14.8
    ElseIf tmp >= 96 Then
        girl_skip_solve = 14.4
    ElseIf tmp >= 91 Then
        girl_skip_solve = 14#
    ElseIf tmp >= 86 Then
        girl_skip_solve = 13.6
    ElseIf tmp >= 80 Then
        girl_skip_solve = 13.2
    ElseIf tmp >= 74 Then
        girl_skip_solve = 12.8
    ElseIf tmp >= 67 Then
        girl_skip_solve = 12.4
    ElseIf tmp >= 58 Then
        girl_skip_solve = 12#
    ElseIf tmp >= 56 Then
        girl_skip_solve = 11.5
    ElseIf tmp >= 54 Then
        girl_skip_solve = 10#
    ElseIf tmp >= 51 Then
        girl_skip_solve = 9#
    ElseIf tmp >= 48 Then
        girl_skip_solve = 8#
    ElseIf tmp >= 45 Then
        girl_skip_solve = 7#
    ElseIf tmp >= 42 Then
        girl_skip_solve = 6#
    ElseIf tmp >= 38 Then
        girl_skip_solve = 5#
    ElseIf tmp >= 33 Then
        girl_skip_solve = 4#
    ElseIf tmp >= 29 Then
        girl_skip_solve = 3#
    Else
        girl_skip_solve = 0#
    End If
    
End Function

Function boy_gsit_solve(tmp) As Double
    If tmp >= 15 Then
        boy_gsit_solve = 20#
    ElseIf tmp >= 14 Then
        boy_gsit_solve = 19#
    ElseIf tmp >= 13 Then
        boy_gsit_solve = 18#
    ElseIf tmp >= 12 Then
        boy_gsit_solve = 17#
    ElseIf tmp >= 11 Then
        boy_gsit_solve = 16#
    ElseIf tmp >= 10 Then
        boy_gsit_solve = 15.2
    ElseIf tmp >= 9 Then
        boy_gsit_solve = 14.4
    ElseIf tmp >= 8 Then
        boy_gsit_solve = 13.6
    ElseIf tmp >= 7 Then
        boy_gsit_solve = 12.8
    ElseIf tmp >= 6 Then
        boy_gsit_solve = 12#
    ElseIf tmp >= 5 Then
        boy_gsit_solve = 10#
    ElseIf tmp >= 4 Then
        boy_gsit_solve = 8#
    ElseIf tmp >= 3 Then
        boy_gsit_solve = 6#
    ElseIf tmp >= 2 Then
        boy_gsit_solve = 4#
    Else
        boy_gsit_solve = 0#
    End If
End Function

Function girl_gsit_solve(tmp) As Double
    If tmp >= 52 Then
        girl_gsit_solve = 20#
    ElseIf tmp >= 51 Then
        girl_gsit_solve = 19.5
    ElseIf tmp >= 50 Then
        girl_gsit_solve = 19#
    ElseIf tmp >= 49 Then
        girl_gsit_solve = 18.5
    ElseIf tmp >= 48 Then
        girl_gsit_solve = 18#
    ElseIf tmp >= 47 Then
        girl_gsit_solve = 17.7
    ElseIf tmp >= 46 Then
        girl_gsit_solve = 17.4
    ElseIf tmp >= 45 Then
        girl_gsit_solve = 17#
    ElseIf tmp >= 44 Then
        girl_gsit_solve = 16.7
    ElseIf tmp >= 43 Then
        girl_gsit_solve = 16.4
    ElseIf tmp >= 42 Then
        girl_gsit_solve = 16#
    ElseIf tmp >= 40 Then
        girl_gsit_solve = 15.6
    ElseIf tmp >= 38 Then
        girl_gsit_solve = 15.2
    ElseIf tmp >= 36 Then
        girl_gsit_solve = 14.8
    ElseIf tmp >= 34 Then
        girl_gsit_solve = 14.4
    ElseIf tmp >= 32 Then
        girl_gsit_solve = 14#
    ElseIf tmp >= 30 Then
        girl_gsit_solve = 13.6
    ElseIf tmp >= 28 Then
        girl_gsit_solve = 13.2
    ElseIf tmp >= 26 Then
        girl_gsit_solve = 12.8
    ElseIf tmp >= 24 Then
        girl_gsit_solve = 12.4
    ElseIf tmp >= 22 Then
        girl_gsit_solve = 12#
    ElseIf tmp >= 20 Then
        girl_gsit_solve = 10#
    ElseIf tmp >= 18 Then
        girl_gsit_solve = 8#
    ElseIf tmp >= 16 Then
        girl_gsit_solve = 6#
    ElseIf tmp >= 14 Then
        girl_gsit_solve = 4#
    Else
        girl_gsit_solve = 0#
    End If
End Function

Function boy_gbasketball_solve(tmp) As Double
    If tmp <= 9.4 Then
        boy_gbasketball_solve = 20
    ElseIf tmp <= 9.6 Then
        boy_gbasketball_solve = 19.8
    ElseIf tmp <= 9.8 Then
        boy_gbasketball_solve = 19.6
    ElseIf tmp <= 10.1 Then
        boy_gbasketball_solve = 19.4
    ElseIf tmp <= 10.4 Then
        boy_gbasketball_solve = 19.2
    ElseIf tmp <= 10.7 Then
        boy_gbasketball_solve = 19#
    ElseIf tmp <= 11.1 Then
        boy_gbasketball_solve = 18.8
    ElseIf tmp <= 11.5 Then
        boy_gbasketball_solve = 18.6
    ElseIf tmp <= 11.9 Then
        boy_gbasketball_solve = 18.4
    ElseIf tmp <= 12.3 Then
        boy_gbasketball_solve = 18.2
    ElseIf tmp <= 12.8 Then
        boy_gbasketball_solve = 18#
    ElseIf tmp <= 13# Then
        boy_gbasketball_solve = 17.7
    ElseIf tmp <= 13.2 Then
        boy_gbasketball_solve = 17.4
    ElseIf tmp <= 13.4 Then
        boy_gbasketball_solve = 17#
    ElseIf tmp <= 13.8 Then
        boy_gbasketball_solve = 16.7
    ElseIf tmp <= 14.2 Then
        boy_gbasketball_solve = 16.4
    ElseIf tmp <= 14.7 Then
        boy_gbasketball_solve = 16#
    ElseIf tmp <= 15.1 Then
        boy_gbasketball_solve = 15.6
    ElseIf tmp <= 15.4 Then
        boy_gbasketball_solve = 15.2
    ElseIf tmp <= 16.1 Then
        boy_gbasketball_solve = 14.8
    ElseIf tmp <= 16.4 Then
        boy_gbasketball_solve = 14.4
    ElseIf tmp <= 16.9 Then
        boy_gbasketball_solve = 14#
    ElseIf tmp <= 17.8 Then
        boy_gbasketball_solve = 13.6
    ElseIf tmp <= 18.3 Then
        boy_gbasketball_solve = 13.2
    ElseIf tmp <= 18.9 Then
        boy_gbasketball_solve = 12.8
    ElseIf tmp <= 19.8 Then
        boy_gbasketball_solve = 12.4
    ElseIf tmp <= 20.8 Then
        boy_gbasketball_solve = 12#
    ElseIf tmp <= 21.2 Then
        boy_gbasketball_solve = 11.5
    ElseIf tmp <= 21.6 Then
        boy_gbasketball_solve = 10#
    ElseIf tmp <= 22.2 Then
        boy_gbasketball_solve = 9#
    ElseIf tmp <= 22.9 Then
        boy_gbasketball_solve = 8#
    ElseIf tmp <= 23.5 Then
        boy_gbasketball_solve = 7#
    ElseIf tmp <= 24.1 Then
        boy_gbasketball_solve = 6#
    ElseIf tmp <= 24.9 Then
        boy_gbasketball_solve = 5#
    ElseIf tmp <= 25.8 Then
        boy_gbasketball_solve = 4#
    ElseIf tmp <= 26.6 Then
        boy_gbasketball_solve = 3#
    Else
        boy_gbasketball_solve = 0#
    End If
End Function

Function girl_gbasketball_solve(tmp) As Double
    If tmp <= 12# Then
        girl_gbasketball_solve = 20
    ElseIf tmp <= 12.1 Then
        girl_gbasketball_solve = 19.8
    ElseIf tmp <= 12.3 Then
        girl_gbasketball_solve = 19.6
    ElseIf tmp <= 12.5 Then
        girl_gbasketball_solve = 19.4
    ElseIf tmp <= 12.8 Then
        girl_gbasketball_solve = 19.2
    ElseIf tmp <= 13.1 Then
        girl_gbasketball_solve = 19#
    ElseIf tmp <= 13.4 Then
        girl_gbasketball_solve = 18.8
    ElseIf tmp <= 13.7 Then
        girl_gbasketball_solve = 18.6
    ElseIf tmp <= 14.1 Then
        girl_gbasketball_solve = 18.4
    ElseIf tmp <= 14.4 Then
        girl_gbasketball_solve = 18.2
    ElseIf tmp <= 14.8 Then
        girl_gbasketball_solve = 18#
    ElseIf tmp <= 15.1 Then
        girl_gbasketball_solve = 17.7
    ElseIf tmp <= 15.5 Then
        girl_gbasketball_solve = 17.4
    ElseIf tmp <= 16# Then
        girl_gbasketball_solve = 17#
    ElseIf tmp <= 16.7 Then
        girl_gbasketball_solve = 16.7
    ElseIf tmp <= 17.6 Then
        girl_gbasketball_solve = 16.4
    ElseIf tmp <= 18.4 Then
        girl_gbasketball_solve = 16#
    ElseIf tmp <= 19.2 Then
        girl_gbasketball_solve = 15.6
    ElseIf tmp <= 19.9 Then
        girl_gbasketball_solve = 15.2
    ElseIf tmp <= 20.6 Then
        girl_gbasketball_solve = 14.8
    ElseIf tmp <= 21.4 Then
        girl_gbasketball_solve = 14.4
    ElseIf tmp <= 22.1 Then
        girl_gbasketball_solve = 14#
    ElseIf tmp <= 22.9 Then
        girl_gbasketball_solve = 13.6
    ElseIf tmp <= 23.9 Then
        girl_gbasketball_solve = 13.2
    ElseIf tmp <= 24.7 Then
        girl_gbasketball_solve = 12.8
    ElseIf tmp <= 25.8 Then
        girl_gbasketball_solve = 12.4
    ElseIf tmp <= 27.1 Then
        girl_gbasketball_solve = 12#
    ElseIf tmp <= 27.4 Then
        girl_gbasketball_solve = 11.5
    ElseIf tmp <= 27.8 Then
        girl_gbasketball_solve = 10#
    ElseIf tmp <= 28.3 Then
        girl_gbasketball_solve = 9#
    ElseIf tmp <= 28.8 Then
        girl_gbasketball_solve = 8#
    ElseIf tmp <= 29.3 Then
        girl_gbasketball_solve = 7#
    ElseIf tmp <= 29.9 Then
        girl_gbasketball_solve = 6#
    ElseIf tmp <= 30.5 Then
        girl_gbasketball_solve = 5#
    ElseIf tmp <= 31.2 Then
        girl_gbasketball_solve = 4#
    ElseIf tmp <= 31.9 Then
        girl_gbasketball_solve = 3#
    Else
        girl_gbasketball_solve = 0#
    End If
End Function

Function boy_football_solve(tmp) As Double
    If tmp >= 15 Then
        boy_football_solve = 20#
    ElseIf tmp >= 14 Then
        boy_football_solve = 19.5
    ElseIf tmp >= 13 Then
        boy_football_solve = 19#
    ElseIf tmp >= 12 Then
        boy_football_solve = 18#
    ElseIf tmp >= 11 Then
        boy_football_solve = 16#
    ElseIf tmp >= 10 Then
        boy_football_solve = 14#
    ElseIf tmp >= 9 Then
        boy_football_solve = 12#
    ElseIf tmp >= 8 Then
        boy_football_solve = 10#
    ElseIf tmp >= 7 Then
        boy_football_solve = 8#
    Else
        boy_football_solve = 0#
    End If
End Function


Sub test()
    Dim isblank As Boolean
    Dim i As Integer
    Dim tot As Integer
    tot = 0
    For i = 5 To 10000
        isblank = Cells(i, 1).Value = ""
        If isblank Then
            Exit For
        Else
            tot = tot + 1
        End If
    Next i
    'MsgBox "共有" & tot & "组数据"
    
    Dim t1 As String
    
    Dim run, skip, sit_up, football As Integer
    Dim jump, basketball As Double
    Dim grun, gjump, gskip, gsit_up, gbasketball, gfootball As Double
    For i = 5 To 5 + tot - 1
        run = 10000
        skip = 0
        sit_up = 0
        football = 0
        jump = 0
        basketball = 99
        
        grun = 0
        gjump = 0
        gskip = 0
        gsit_up = 0
        gbasketball = 0
        gfootball = 0

        If Cells(i, 2) = "男" Then
        
            isblank = Cells(i, 3).Value = ""
            If isblank = False Then
                t1 = Cells(i, 3)
                run = opchangpao(t1)
                'MsgBox (run)
            End If
            
            isblank = Cells(i, 4).Value = ""
            If isblank = False Then
                t1 = Cells(i, 4)
                jump = CDbl(t1)
                'MsgBox (jump)
            End If
            
            isblank = Cells(i, 5).Value = ""
            If isblank = False Then
                t1 = Cells(i, 5)
                skip = CDbl(t1)
                'MsgBox (skip)
            End If
            
            isblank = Cells(i, 6).Value = ""
            If isblank = False Then
                t1 = Cells(i, 6)
                sit_up = 0
                sit_up = CInt(t1)
                'MsgBox (sit_up)
            End If
            'MsgBox (sit_up)
            
            isblank = Cells(i, 7).Value = ""
            If isblank = False Then
                t1 = Cells(i, 7)
                basketball = CDbl(t1)
                'MsgBox (basketball)
            End If
            
            isblank = Cells(i, 8).Value = ""
            If isblank = False Then
                t1 = Cells(i, 8)
                football = CInt(t1)
                'MsgBox (football)
            End If
            

            grun = boy_run_solve(run)
            gjump = boy_jump_solve(jump)
            gskip = boy_skip_solve(skip)
            gsit_up = boy_gsit_solve(sit_up)
            gbasketball = boy_gbasketball_solve(basketball)
            
            'MsgBox "长跑成绩为" & grun
            'MsgBox "跳远的成绩为" & gjump
            'MsgBox "跳绳的成绩为" & gskip
            'MsgBox "男生引体向上的成绩为" & gsit_up
            'MsgBox "篮球的成绩为" & gbasketball
            
            
            gfootball = boy_football_solve(football)
            Cells(i, 9) = (grun + gjump + gskip + gsit_up + gbasketball + gfootball) * 1.5
            
        Else
            isblank = Cells(i, 3).Value = ""
            If isblank = False Then
                t1 = Cells(i, 3)
                run = opchangpao(t1)
                'MsgBox (run)
            End If
            
            isblank = Cells(i, 4).Value = ""
            If isblank = False Then
                t1 = Cells(i, 4)
                jump = CDbl(t1)
                'MsgBox (jump)
            End If
            
            isblank = Cells(i, 5).Value = ""
            If isblank = False Then
                t1 = Cells(i, 5)
                skip = CDbl(t1)
                'MsgBox (skip)
            End If
            
            isblank = Cells(i, 6).Value = ""
            If isblank = False Then
                t1 = Cells(i, 6)
                sit_up = CInt(t1)
                'MsgBox (sit_up)
            End If
            
            isblank = Cells(i, 7).Value = ""
            If isblank = False Then
                t1 = Cells(i, 7)
                basketball = CDbl(t1)
                'MsgBox (basketball)
            End If
            
            isblank = Cells(i, 8).Value = ""
            If isblank = False Then
                t1 = Cells(i, 8)
                football = CInt(t1)
                'MsgBox (football)
            End If
            
            grun = girl_run_solve(run)
            gjump = girl_jump_solve(jump)
            gskip = girl_skip_solve(skip)
            gsit_up = girl_gsit_solve(sit_up)
            gbasketball = girl_gbasketball_solve(basketball)
            gfootball = boy_football_solve(football)
            
            'MsgBox "长跑成绩为" & grun
            'MsgBox "跳远的成绩为" & gjump
            'MsgBox "跳绳的成绩为" & gskip
            'MsgBox "仰卧起坐的成绩为" & gsit_up
            'MsgBox "篮球的成绩为" & gbasketball
            'MsgBox "足球的成绩为" & gfootball
            Cells(i, 9) = (grun + gjump + gskip + gsit_up + gbasketball + gfootball) * 1.5
            
        End If
        
    Next i
    MsgBox "完成!"
End Sub


一、VBA语言基础 1 第一节 标识符 1 第二节 运算符 1 第三节 数据类型 1 第四节 变量与常量 1 第五节 数组 2 第六节 注释和赋值语句 2 第七节 书写规范 2 第八节 判断语句 2 第九节 循环语句 3 第十节 其他类语句和错误语句处理 4 第十一节 过程和函数 4 一.Sub过程 4 二.Function函数 5 三.Property属性过程和Event事件过程 5 第十二节内部函数 5 一.测试函数 5 二.数学函数 5 三.字符串函数 6 四.转换函数 6 五.时间函数 6 第十三节 文件操作 6 文件 6 删除 7 打开 7 读入 7 写入 7 关闭 7 其他文件函数 7 二、VISUAL BASIC程序设计网络教学 1 第一课 VBA是什么 1 1.1 VBA是什么 1 1.2 EXCEL环境中基于应用程序自动化的优点 1 1.3 录制简单的宏 2 1.4 执行宏 2 1.5 查看录制的代码 2 1.6 编辑录制的代码 3 1.7 录制宏的局限性 4 1.8 小结 4 第二课 处理录制的宏 4 2.1 为宏指定快捷键 4 2.2 决定宏保存的位置 5 2.3 个人宏工作簿 5 2.3.1 保存宏到个人宏工作簿 5 2.3.2 使用并编辑个人宏工作簿中的宏 5 2.4 将宏指定给按钮 6 2.5 将宏指定给图片或其他对象 6 2.6 小结 7 第三课 学习控件 7 3.1 EXCEL开发过程简介 7 3.2 认识不同的控件 7 3.3 向工作表添加控件 7 3.4 设置控件的特性 8 3.5 给控件命名 8 3.6 使用用户窗体 8 3.7 疑难解答 9 第四课 理解变量和变量的作用 9 4.1 代码存在的位置:模块 9 4.2 对模块的概览 10 4.2.1 创建过程 10 4.2.2 运行宏 11 4.3 保存对模块所做的改变 11 4.4 变量 11 4.4.1 变量的数据类型 11 4.4.2 用Dim语句创建变量(声明变量) 13 4.4.3 变量命名的惯例 13 4.4.4 使用数组 14 4.4.5 变量赋值 15 第五课 利用VBA设置工作表使用权限 15 1.使用WITH语句。 17 2.使用对象变量。 17 方法3:减少对象的激活和选择 17 方法4:关闭屏幕更新 18 第六课 提高EXCELVBA的效率 19 方法1:尽量使用VBA原有的属性、方法和WORKSHEET函数 19 方法2:尽量减少使用对象引用,尤其在循环中 19 1.使用With语句。 19 2.使用对象变量。 20 3.在循环中要尽量减少对象的访问。 20 方法3:减少对象的激活和选择 20 方法4:关闭屏幕更新 20 第七课 如何在EXCEL里使用定时器 20 三、学习微软 EXCEL 2002 VBA 编程和XML,ASP技术 22 第一章 电子表格自动化简介和了解宏命令 22 1了解宏 22 2宏命令的普通应用 22 3写宏之前的计划 23 4录制宏 24 5运行宏 26 6修改宏代码 26 7添加注释 29 8分析宏代码 29 9清除宏代码 30 10测试修改好的宏 31 11两个层面运行宏的方法 32 12完善你的宏代码 32 13重新命名宏 34 14运行宏的其它方法 34 15使用键盘快捷键运行宏 34 16通过菜单运行宏 35 17通过工具栏按钮运行宏 37 18通过工作表里面的按钮运行宏 38 19保存宏 39 20打印宏 39 21保存宏在个人宏工作簿 40 22打开含有宏的工作簿 41 23VB编辑窗口 42 24了解工程浏览窗口 43 25了解属性窗口 43 26了解代码窗口 44 27 VB编辑器里的其它窗口 46 28接下来…… 46 第二章 VBA 第一步 46 1了解指令,模块和过程 47 2 VBA工程命名 47 3模块重命名 48 4从其它工程调用过程 49 5了解对象,属性和方法 50 6学习对象,属性和方法 51 7句法和文法 53 8打断很长的VBA语句 55 9了解VBA错误 55 10查找帮助 57 11语法和编程快捷助手 58 12属性/方法列表 59 13常数列表 59 14参数信息 60 15快速信息 60 16自动完成关键字 60 17缩进/凸出 61 18设置注释块/解除注释块 61 19使用对象浏览器 61 20使用VBA对象库 66 21用对象浏览器来定位过程 67 22使用立即窗口 67 23获取立即窗口里的信息 69 24学习对象 70 25电子表格单元格操作 70 26使用RANGE属性 70 27使用CELLS属性 71 28使用OFFSET属性 71 29选择单元格的其它方法 72 30选择行和列 73 31获取工作表信息 73 32往工作表输入数据 73 33返回工作表中的信息 74 34单元格格式 74 35移动,复制和删除单元格 74 36操作工作簿和工作表 75 37操作窗口(WINDOWS) 76 38管理EXCEL应用程序 76 39接下来…… 77 第三章 了解变量,数据类型和常量 77 1保存VBA语句的结果 77 2变量是什么 77 3数据类型 78 4如何产生变量 78 5如何声明变量 79 6明确变量的数据类型 80 7变量赋值 81 8强制声明变量 84 9了解变量范围 85 10过程级别(当地)变量 85 11模块级别变量 85 12工程级别变量 86 13变量的存活期 86 14了解和使用静态变量 86 15声明和使用对象变量 87 16使用明确的对象变量 88 17查找变量定义 88 18在VB过程里面使用常量 89 19内置常量 89 20接下来…… 90 第四章 VBA过程:子程序和函数 91 1.关于函数过程 91 2.创建函数过程 91 3.执行函数过程 92 4.从工作表里运行函数过程 93 5.从另外一个VBA过程里运行函数过程 94 6.传递参数 95 7.明确参数类型 96 8.按地址和按值传递参数 97 9.使用可选的参数 97 10.定位内置函数 98 11.使用MSGBOX函数 99 12.MSGBOX函数的运行值 103 13.使用INPUTBOX函数 104 14.数据类型转变 105 15.使用INPUTBOX方法 106 16.使用主过程和子过程 109 17.接下来…… 111 第五章 基于VBA做决定 111 1.关系和逻辑运算符 111 2.IF…THEN语句 112 3.基于多于一个条件的决定 114 4.THE IF…THEN…ELSE语句 115 5.IF…THEN…ELSEIF语句 118 6.嵌套的IF…THEN语句 119 7.SELECT CASE语句 120 8.和CASE子句一起使用IS 121 9.确定CASE子句里数值的范围 122 10.在CASE子句里确定多个表达式 123 11.接下来… 123 第六章 在VBA中重复操作 123 1.DO LOOPS: DO…WHILE和DO…UNTIL 123 2.观察过程执行 126 3.WHILE…WEND循环 127 4.FOR…NEXT 循环 128 5.FOR EACH…NEXT循环 129 7.提前跳出循环 130 8.循环嵌套 131 9.接下来… 131 第七章 利用VBA数组管理数据清单和表格 131 1.了解数组 132 2.声明数组 133 3.数组的上界和下界 133 4.在VBA过程里使用数组 134 5.数组和循环语句 135 6.使用二维数组 136 7.静态和动态数组 137 8.数组函数 139 9.ARRAY函数 139 10.ISARRAY函数 140 11.ERASE函数 140 12.LBOUND函数和UBOUND函数 141 13.数组中的错误 141 14.数组作为参数 143 15.接下来… 143 第八章 利用VBA操纵文件和文件夹 144 1.获取当前文件夹的名称(CURDIR函数) 144 2.更改文件或文件夹名称(NAME函数) 145 3.检查文件或文件夹是否存在(DIR函数) 145 4.获得文件修改的日期和时间(FILEDATETIME函数) 147 5.获得文件大小(FILELEN函数) 147 6.返回和设置文件属性(GETATTR函数和SETATTR函数) 147 7.更改缺省文件夹或驱动器(CHDIR语句和CHDRIVE语句) 149 8.创建和删除文件夹(MKDIR语句和RMDIR语句) 149 9.复制文件(FILECOPY语句) 149 10.删除文件(KILL语句) 151 11.从文件读取和写入数据(INPUT/OUTPUT) 151 12.文件访问类型 152 13.使用顺序文件 152 14.读取储存于顺序文件里的数据 152 15.逐行读取文件 152 16.从顺序文件中读取字符 153 17.读取分隔文本文件 155 18.往顺序文件里写数据 155 19.使用WRITE # 和PRINT # 语句 156 20.操作随机文件 157 21.创建用户定义的数据类型 157 22.操作二进制文件 161 23.操作文件和文件夹的时髦方法 162 24.使用WSH获取文件信息 164 25.FILESYSTEMOBJEC的方法和属性 165 26.对象FILE的属性 168 27.文件夹对象属性 169 28.驱动器对象属性 169 29.使用WSH创建文本文件 170 30.使用WSH进行其它操作 172 31.运行其它应用程序 172 32.创建快捷方式 173 33.接下来…… 174 第九章 利用VBA控制其它应用程序 174 1.启动应用程序 174 2.在应用程序之间切换 177 3.控制其它应用程序 177 4.控制应用程序的其它方法 179 5.了解自动控制 179 6.了解链接和嵌入 180 7.使用VBA进行链接和嵌入 181 8.COM和自动控制 182 9.了解绑定 182 10.后期绑定 182 11.早期绑定 182 12.建立到对象库的引用 183 13.创建自动控制对象 184 14.使用CREATEOBJECT函数 184 15.使用自动控制创建一个新的WORD文档 185 16.使用GETOBJECT函数 185 17.打开存在的WORD文档 186 18.使用关键字NEW 187 19.使用自动控制访问MICROSOFT OUTLOOK 188 20.接下来…… 189 第十章 对话框和自定义窗体 189 1.文件打开和另存为对话框 192 2.GETOPENFILENAME和GETSAVEASFILENAME方法 196 3.创建窗体 197 4.创建用户窗体的工具 199 5.标签 200 6.文字框 200 7.框架 200 8.选项按钮 201 9.复选框 201 10.切换按钮 201 11.列表框 201 12.复合框 201 13.滚动条 201 14.旋转按钮 201 15.图像 201 16.多页控件 202 17.TABSTRIP控件 202 18.REFEDIT控件 202 19.在窗体上放置控件 202 20.应用程序示例1:信息调查 202 21.在窗体上添加按钮、选项框和其它控件 204 22.更改控件名称 206 23.设置其它控件属性 206 24.准备工作表以储存窗体数据 207 25.显示自定义窗体 208 26.设置TAB顺序 208 27.了解窗体和控件事件 209 28.编写VBA过程对窗体和控件事件反应 211 29.编写过程来初始化窗体 211 30.编写过程填充列表框控件 213 31.编写过程控制选项按钮 213 32.编写过程同步文字框和旋转按钮 214 33.编写过程关闭用户窗体 214 34.转移窗体数据到工作表 215 35.使用INFO SURVEY应用程序 216 36.应用程序示例2:学生和考试 216 37.使用多页和TABSTRIP控件 216 38.给窗体STUDENTS AND EXAMS自定义窗体编写VBA过程 218 39.使用自定义窗体STUDENTS AND EXAMS 223 40.接下来…… 225 第十一章 自定义集合和类模块 225 1.使用集合 226 2.声明自定义集合 227 3.给自定义集合添加对象 227 4.从自定义集合移出对象 228 5.创建自定义对象 229 6.创建类 229 7.变量声明 229 8.定义类的属性 230 9.创建PROPERTY GET过程 230 10.创建PROPERTY LET过程 231 11.创建类方法 232 12.创建类的示例 232 13.类模块里的事件过程 232 14.创建用户界面 233 15.观察VBA过程的执行 242 16.接下来…… 245 第十二章 使用VBA创建自定义菜单和工具栏 245 1.工具栏 245 2.创建自定义工具栏 247 3.删除自定义工具栏 249 4.使用COMMANDBAR的属性 249 5.使用COMMANDBAR控件 249 6.理解和使用控件属性 251 7.控件方法 253 8.使用菜单 254 9.菜单编程 256 10.创建子菜单 258 11.修改内置快捷菜单 260 12.创建快捷菜单 262 13.接下来…… 264 第十三章 调试VBA过程和处理错误 264 1.测试VBA过程 265 2.终止过程 265 3.使用断点 266 4.在中断模式下使用立即窗口 269 5.使用STOP语句 271 6.添加监视表达式 271 7.清除监视表达式 274 8.使用快速监视 274 9.使用本地窗口和调用堆栈对话框 275 10.逐句运行VBA过程 276 11.逐句运行过程 277 12.逐过程执行过程 277 13.设置下一条语句 278 14.显示下一条语句 279 15.终止和重新设置VBA过程 279 16.了解和使用条件编译 279 17.操纵书签 281 18.捕捉错误 281 17.接下来…… 285 第十四章 微软EXCEL 2002 中的事件编程 285 1.事件过程介绍 285 2.激活和失活事件 287 3.事件次序 289 4.工作表事件 289 5.工作簿事件 294 6.图表事件 312 7.内嵌图表事件 316 8.可为应用软件对象识别的事件 317 9.查询表时间 320 10.接下来…… 323 第十五章 在EXCEL里使用ACCESS 323 1.对象库 323 2.建立对对象库的引用 329 3.链接到ACCESS 329 4.使用AUTOMATION链接到ACCESS数据库 331 5.使用DAO链接到ACCESS数据库 334 6.使用ADO链接到ACCESS数据库 334 7.从EXCEL执行ACCESS任务 336 8.创建新ACCESS数据库 336 9.打开ACCESS窗体 338 10.打开ACCESS报表 343 11.运行ACCESS查询 345 12.运行选择查询 347 13.运行参数查询 348 14.调用ACCESS函数 350 15.获取ACCESS数据到EXCEL工作表 350 16.使用GETROWS方法获取数据 350 17.使用COPYFROMRECORDSET方法获取数据 354 18.使用TRANSFERSPREADSHEET方法获取数据 354 19.使用OPENDATABASE方法 356 20.从ACCESS数据创建文本文件 360 21.从ACCESS数据创建查询表 363 22.在EXCEL里使用ACCESS数据 365 23.用ACCESS数据创建内嵌图表 365 24.传输EXCEL电子表格到ACCESS数据库 367 25.将EXCEL电子表格链接到ACCESS数据库 369 26.将EXCEL电子表格导入ACCESS数据库 370 27.放置EXCEL数据到ACCESS表中 370 28.接下来…… 374
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值