常用对象
Application代表正在运行的EXCEL系统本身
Workbook代表一个打开的EXCEL文件(工作簿)
WorkSheet代表一张工作表
Range代表一个或若干单元格组成的内容区域
- 类:对象的分类,同类对象特征相同
- 对象:系统中每一个具体的事物
- 属性:是什么样子
- 方法:能做什么
用来跨表计算每个表的总分
Option Explicit
Sub 统计()
Dim i, j, total '定义循环变量和累加器
Dim w1 As Worksheet '定义w1为工作表
For i = 1 To Worksheets.Count '用worksheets来调用属性,这里count是算有多少工作表
Set w1 = Worksheets(i) '对对象进行赋值用set,有点类似于C语言的指针
total = 0
j = 2
Do While w1.Cells(j, 1) <> ""
total = total + w1.Cells(j, 2) '不能忘了w1. 否则会编译出错
j = j + 1
Loop
w1.Cells(2, 3) = total
Next i
End Sub
新建一张表
Sub 新建表()
Dim i As Integer
Dim w1 As Worksheet '定义表用worksheet
For i = 1 To 3
Set w1 = Worksheets.Add '调用属性用worksheets
w1.Cells(1, 1) = 123
Next i
End Sub
# 统计后的结果汇总到另一个表
Option Explicit
Sub 统计()
Dim i, j, k, total '定义循环变量和累加器
Dim wperson As Worksheet '定义wperson为工作表
Dim wall As Worksheet '用来存总分的工作表
Set wall = Worksheets("总分榜") '用字符串来表示不会搞混淆
k = 2
For i = 1 To Worksheets.Count '用worksheets来调用属性,这里count是算有多少工作表
Set wperson = Worksheets(i) '对对象进行赋值用set,有点类似于C语言的指针
total = 0
j = 2
Do While wperson.Cells(j, 1) <> ""
total = total + wperson.Cells(j, 2) '不能忘了wperson. 否则会编译出错
j = j + 1
Loop
wperson.Cells(2, 3) = total
If wperson.name <> "总分榜" Then '赋值到总分榜里面
wall.Cells(k, 1) = wperson.Cells(1, 2)
wall.Cells(k, 2) = wperson.Cells(2, 3)
k = k + 1
End If
Next i
End Sub