问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

王佩丰老师vba课程笔记——第十七讲 触"类"旁通 类模块

发布网友 发布时间:2024-09-17 08:44

我来回答

1个回答

热心网友 时间:2024-09-29 22:29

第十七讲 触“类”旁通2:类模块

一、共有与私有

1、Private Sub text()

MsgBox "aa"

End Sub

在同一模块中,可以通过call text 调用,但要是在其他模块就会报错

默认是public,都可以调用;private 只有本模块能调用。

2、Sub text()

i = 1

End Sub

Sub text1()

MsgBox i

End Sub

没有值弹出

3、Dim i As Integer

Sub text()

i = 1

End Sub

Sub text1()

MsgBox i

End Sub

弹出i

当变量定义在所有过程的外面,所有的过程都可以定义改变量。但在别的模块不能调用,除非是 public I as integer (谨慎使用)。可以在模块中定义分函数:

Function qbl()

qbl = i

End Function => msgbox qbl()

二、类模块

1、新建一月表:

Sub test()

Dim sht, sht1 As Worksheet

For Each sht In Sheets

If sht.Name = "一月" Then

k = k + 1

End If

Next

If k = 0 Then

Set sht1 = Sheets.Add

sht1.Name = "一月"

End If

End Sub

è

Sub test()

Call sadd("二月")

End Sub

Sub sadd(str As String)

Dim sht, sht1 As Worksheet

For Each sht In Sheets

If sht.Name = str Then

k = k + 1

End If

Next

If k = 0 Then

Set sht1 = Sheets.Add

sht1.Name = str

End If

End Sub

2、删除二月表

Sub test1()

Call sdelete("二月")

End Sub

Sub sdelete(str As String)

Dim sht As Worksheet

Application.DisplayAlerts = False

For Each sht In Sheets

If sht.Name = str Then

sht.Delete

End If

Next

Application.DisplayAlerts = True

End Sub

3、类模块

类模块的方法:

插入类模块,打开属性窗口,将类的名字改为supersheet

将上面两个带参数的过程复制到类模块中

类模块的属性:

Property Get scount()

scount = Sheet.Count

End Property

在模块中调用类:

Sub test()

Dim aaa As New supersheet

aaa.sadd ("二月")

MsgBox aaa.scount

End Sub

4、练习

要是单元格为空,则删除总行

Sub rdelete(rng As Range)

If rng = "" Then

rng.EntireRow.Delete

End If

End Sub

Sub test1()

Dim bb As New superrange

For i = 25 To 1 Step -1

bb.rdelete Range("d" & i)

Next

End Sub

!将类导出,以后可以导入到excel中直接处理数据

三、do while 循环

Sub test()

Do While InputBox("请输入密码") <> "123"

Loop

End Sub

当输入的密码不等于123时执行循环,等于123时退出循环

热心网友 时间:2024-09-29 22:23

第十七讲 触“类”旁通2:类模块

一、共有与私有

1、Private Sub text()

MsgBox "aa"

End Sub

在同一模块中,可以通过call text 调用,但要是在其他模块就会报错

默认是public,都可以调用;private 只有本模块能调用。

2、Sub text()

i = 1

End Sub

Sub text1()

MsgBox i

End Sub

没有值弹出

3、Dim i As Integer

Sub text()

i = 1

End Sub

Sub text1()

MsgBox i

End Sub

弹出i

当变量定义在所有过程的外面,所有的过程都可以定义改变量。但在别的模块不能调用,除非是 public I as integer (谨慎使用)。可以在模块中定义分函数:

Function qbl()

qbl = i

End Function => msgbox qbl()

二、类模块

1、新建一月表:

Sub test()

Dim sht, sht1 As Worksheet

For Each sht In Sheets

If sht.Name = "一月" Then

k = k + 1

End If

Next

If k = 0 Then

Set sht1 = Sheets.Add

sht1.Name = "一月"

End If

End Sub

è

Sub test()

Call sadd("二月")

End Sub

Sub sadd(str As String)

Dim sht, sht1 As Worksheet

For Each sht In Sheets

If sht.Name = str Then

k = k + 1

End If

Next

If k = 0 Then

Set sht1 = Sheets.Add

sht1.Name = str

End If

End Sub

2、删除二月表

Sub test1()

Call sdelete("二月")

End Sub

Sub sdelete(str As String)

Dim sht As Worksheet

Application.DisplayAlerts = False

For Each sht In Sheets

If sht.Name = str Then

sht.Delete

End If

Next

Application.DisplayAlerts = True

End Sub

3、类模块

类模块的方法:

插入类模块,打开属性窗口,将类的名字改为supersheet

将上面两个带参数的过程复制到类模块中

类模块的属性:

Property Get scount()

scount = Sheet.Count

End Property

在模块中调用类:

Sub test()

Dim aaa As New supersheet

aaa.sadd ("二月")

MsgBox aaa.scount

End Sub

4、练习

要是单元格为空,则删除总行

Sub rdelete(rng As Range)

If rng = "" Then

rng.EntireRow.Delete

End If

End Sub

Sub test1()

Dim bb As New superrange

For i = 25 To 1 Step -1

bb.rdelete Range("d" & i)

Next

End Sub

!将类导出,以后可以导入到excel中直接处理数据

三、do while 循环

Sub test()

Do While InputBox("请输入密码") <> "123"

Loop

End Sub

当输入的密码不等于123时执行循环,等于123时退出循环
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
显卡降价矿难了!分享几个检测矿卡的实用软件 怎么分辨二手显卡刷bios 下文教你 怎么识别矿卡 鉴别矿卡的方法介绍 怎么设置小度在家回家视频通话? 贵阳砂岩雕塑厂有哪些 西安市长安二中附近有老年公寓没 来西安这么久了第一次租到性价比高的房子,松鼠公寓良心推荐_西安... 陕西省自强中等专业学校2024年学费多少 宝鸡市区有什么比较好的楼盘 乔安如何远程监控 儿子叛逆,不能满足他的要求就不吃不喝,还反锁门,该咋办 弟老是一生气把房间门反锁了不吃不喝我该怎么和他沟通? ...吵架把门反锁了,不吃不喝,心里想自杀,我该怎么办? 白衣服用84之后没有马上洗干净,留下了黄迹,用有氧洗衣粉能洗干净么... 用消毒液洗衣服好吗 84消毒液洗衣服如果没洗干净会有什么后果... 为什么win10电脑无法识别u盘? 南昌属于哪个省份的 南昌市这个地方怎么样 蒟蒻芽菜丝瓜汤做法: 豆芽丝瓜汤怎么做香酥醇浓、味道可口? 奇正相生,不可胜穷智慧故事 胸口鼓起一个包按着痛怎么办 地址转换的缺点 地址转换缺点 如何区分备案类报批类减免税 公共卫生专业哪些 公共卫生专业毕业是做什么 公共卫生管理专业要开哪些课程呢 临沂很有钱吗?抖音上炫富的那么多临沂的 2023五一实际只有一天假期吗 五一节日有什么风俗 陶粒砂机器生产陶粒的主体设备主要包括 我想找一首粤语歌曲,女歌手唱的,歌词里有"没人追你多么的成熟 找到一... 备案项目是什么意思? 血气分析抽多少mL血 血气分析需要抽多少血 盐官镇简介 鲍鱼生蚝海螺能不能一起吃 生蚝海螺鲍鱼能不能一起煮 生蚝海螺能不能一起吃 你知道什么海鲜适合清蒸吗? 梦里说人狂有灾啥意思? 不锈钢菜馅机怎么清洗 儿童太空沙哪个牌子好 打仗耳朵听力56—73算轻伤吗 一个耳朵听力下降85算不算刑事案件? 初三学生坚持每天跑步有什么好处? 铺地柏的生长习性 野生高原铺地柏到重庆为什么养不活? 野生金刚匍地柏 网游三部曲|失落叶巅峰之作,网游小说近巅峰之作