分享好友 办公首页 办公分类 切换频道

private sub私有过程使用介绍

2020-11-20 17:27浙江2510
内容提要:本文介绍VBA中private sub和Private Sub过程的使用和区别;以及调用private sub和sub过程的三种方法。

第一,认识privatesub和sub过程

ExcelVBA里,我们会接触到privatesub私有过程和sub过程。前者privatesub是私有过程,sub是公共过程。过程也有私有和公共之分。

想把一个过程声明为公共过程,使用:PublicSub过程名;其中的Public就是公共过程的标识牌。

如果想声明为私有过程,则:PrivateSub过程名;其中的Private就是私有过程的标识牌。

如果省略前面的Public,只写sub过程名,就是公共过程。

第二,privatesub和sub过程的区别

privatesub和sub过程有什么区别呢?VBA的过程主要包括sub过程和function过程两种。sub过程不可以返回值,function过程可以返回值。比如我们经常录制的宏就是一个简单的sub过程,使用录制宏功能只能生成sub过程的代码。

privatesub和sub过程都是在模块中使用。下面我们具体看看privatesub私有过程和sub过程的使用和区别。

PrivateSub与Sub的区别是什么?完整地说,应该是PrivateSub与PublicSub的区别是什么。(Sub实际上是省略了Public关键字)。

Sub过程:在一程序内执行特殊任务的过程,不返回显式值。Sub过程以Sub语句开头,以EndSub语句结尾。

Sub语句主要是声明子过程的名称、参数、以及构成其主体的代码。其语法如下:
[Private|Public|Friend][Static]Subname[(arglist)]
[statements]
[ExitSub]
[statements]
EndSub
注:[]中间的参数表示可选。可以不输入,则按默认设置进行。

Sub语句的各部分详述如下:
Private:可选的。表示只有在包含其声明的模块中的其它过程可以访问该Sub过程。
Public:可选的。表示所有模块的所有其它过程都可访问这个Sub过程。如果在包含OptionPrivate的模块中使用,则这个过程在该工程外是不可使用的。
Friend:可选的。只能在类模块中使用。表示该Sub过程在整个工程中都是可见的,但对对象实例的控制者是不可见的。
Static:可选的。表示在调用之间保留Sub过程的局部变量的值。Static属性对在Sub外声明的变量不会产生影响,即使过程中也使用了这些变量。
Name:必需的。Sub的名称;遵循标准的变量命名约定。
Arglist:可选的。代表在调用时要传递给Sub过程的参数的变量列表。多个变量则用逗号隔开。
Statements:可选的。Sub过程中所执行的任何语句组。
如果没有使用Public、Private或Friend显式指定,Sub过程按缺省情况就是公用的。

第三,privatesub和sub过程的写法

一个子过程的声明语句可以有以下多种写法:

第一:
PublicSubAA()
MsgBox"AA"
EndSub

第二:
PrivateSubBB()
MsgBox"BB"
EndSub

第三:
SubCC()
MsgBox"CC"
EndSub

以上三个过程的区别在于过程AA使用了Public语句,使过程成为工程级别的过程,在当前工程中任何模块都可以调用。过程BB使用了Private语句,则为模块级别的过程,只能当前模块可以调用此程序。过程CC使用了缺省设置,它的级别等同于过程AA。

Publicsub和Privatesub只能选一个,选择了Publicsub就不能选择Privatesub,反之亦然。一个工作薄中一个过程被申明为Publicsub后,表明声明的过程是一个公共过程,一个过程被申明为公共过程之后,就表明该工作薄中所有的模块中的其它的过程都可以访问这个过程。

Privatesub过程只有同一个模块中的其它过程才能访问。

privatesub和sub过程在调用方面的区别:我们在excel工作表中使用快捷键“Alt+F8”打开宏对话框,只能看到过程AA和过程CC。也就是说privatesub过程是不会显示在宏对话框里面的。

第四,privatesub和sub过程的调用方法

也就是从一个过程执行另一个过程的方法:

Sub公共()
   MsgBox"部落窝论坛:www.blwbbs.com欢迎你。"
EndSub

PrivateSub私有()
   MsgBox"这是我的窝窝私人空间。"
EndSub

上面分别是sub和privatesub过程。下面我们来讲讲调用方法。

调用方法一:直接使用过程名

1.调用sub公共()

Sub调用()
公共
EndSub

2.调用PrivateSub私有()

Sub调用()
私有
EndSub

调用方法二:使用call调用

在过程名称前使用call关键字:call过程名

Sub调用()
Call公共
Call私有
EndSub


调用的两个过程写在一起,先执行第一个再执行第二个。

调用方法三:利用Application对象的Run方法:Application.Run过程名

Sub调用()
   Application.Run"公共"
EndSub

过程名称也可以是字符串变量,比如下面这样写:


Sub调用()
  DimaAsString
   a="私有"
   Application.Runa
EndSub

点赞 0
反对 0
举报
收藏 0
打赏 0
评论 0
分享 14
更多相关评论
暂时没有评论,来说点什么吧
SUM函数从易到难实战交流
SUM函数使用共分为四大类:简单求和,生成序列,文本计数求和,数组扩展求和。

0评论2024-03-24570

工程项目经济评价的基本方法
投资项目评价的经济指标一般可以分作三大类:第一类是以时间单位计量的时间型指标,如投资回收期;第二类是以货币单位计量的价值

0评论2022-04-172128

EXCEL统计字符出现次数的方法
我们已经知道使用简单的公式=COUNTIF或=COUNTIFS,来统计单元格区域某个值的出现次数,那么针对同一单元格,如何统计某字符串的

0评论2020-11-242260

计算机二级考试题库之Excel选择题(七)
在Excel中,要显示公式与单元格之间的关系,可通过以下方式实现

0评论2020-11-202220

计算机二级考试题库之Excel选择题(六)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第11道和第12道题目。

0评论2020-11-202388

计算机二级考试题库之Excel选择题(五)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第9道和第10道题目。第9题:以下错误的Excel公式形式

0评论2020-11-201756

计算机二级考试题库之Excel选择题(四)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第7道和第8道题目。第7题:小刘用Excel 2010制作了一

0评论2020-11-201123

计算机二级考试题库之Excel选择题(三)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第5道和第6道题目。第5题:在Excel某列单元格中,快

0评论2020-11-201127

计算机二级考试题库之Excel选择题(二)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第3道和第4道题目。第3题:小金从网站上查到了最近一

0评论2020-11-202066

计算机二级考试题库之Excel选择题(一)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第1道和第2道题目。第1题:在Excel工作表中存放了第

0评论2020-11-202360