全民一起VBA基础篇第七课:面向对象基本原理与工作表对象

常用对象

Application代表正在运行的EXCEL系统本身
Workbook代表一个打开的EXCEL文件(工作簿)
WorkSheet代表一张工作表
Range代表一个或若干单元格组成的内容区域
在这里插入图片描述

  1. 类:对象的分类,同类对象特征相同
  2. 对象:系统中每一个具体的事物
  3. 属性:是什么样子
  4. 方法:能做什么
    用来跨表计算每个表的总分
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


发布了26 篇原创文章 · 获赞 5 · 访问量 1104

猜你喜欢

转载自blog.csdn.net/qq_43568982/article/details/103751020