VBA中private sub和Private Sub过程的使用和区别;以及调用private sub和sub过程的三种方法
发布时间:2022-05-31 20:55:22
第一,认识private sub和sub过程
Excel VBA里,我们会接触到private sub私有过程和sub过程。前者private sub是私有过程,sub是公共过程。过程也有私有和公共之分。
想把一个过程声明为公共过程,使用:Public Sub 过程名;其中的Public就是公共过程的标识牌。
如果想声明为私有过程,则:Private Sub 过程名;其中的Private就是私有过程的标识牌。
如果省略前面的Public,只写sub 过程名,就是公共过程。
第二,private sub和sub过程的区别
private sub和sub过程有什么区别呢?VBA的过程主要包括sub过程和function过程两种。sub过程不可以返回值,function过程可以返回值。比如我们经常录制的宏就是一个简单的sub过程,使用录制宏功能只能生成sub过程的代码。
private sub 和sub过程都是在模块中使用。下面我们具体看看private sub私有过程和sub过程的使用和区别。
Private Sub与Sub的区别是什么?完整地说,应该是Private Sub与Public Sub的区别是什么。(Sub 实际上是省略了Public关键字)。
Sub过程:在一程序内执行特殊任务的过程,不返回显式值。Sub 过程以Sub 语句开头,以 End Sub 语句结尾。
Sub 语句主要是声明子过程的名称、参数、以及构成其主体的代码。其语法如下:
[Private | Public | Friend] [Static] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
注:[]中间的参数表示可选。可以不输入,则按默认设置进行。
Sub 语句的各部分详述如下:
Private:可选的。表示只有在包含其声明的模块中的其它过程可以访问该 Sub 过程。
Public:可选的。表示所有模块的所有其它过程都可访问这个 Sub 过程。 如果在包含 Option Private 的模块中使用,则这个过程在该工程外是不可使用的。
Friend:可选的。只能在类模块中使用。表示该 Sub 过程在整个工程中都是可见的,但对对象实例的控制者是不可见的。
Static:可选的。表示在调用之间保留 Sub 过程的局部变量的值。Static 属性对在 Sub 外声明的变量不会产生影响,即使过程中也使用了这些变量。
Name:必需的。Sub 的名称;遵循标准的变量命名约定。
Arglist:可选的。代表在调用时要传递给 Sub 过程的参数的变量列表。多个变量则用逗号隔开。
Statements:可选的。Sub 过程中所执行的任何语句组。
如果没有使用 Public、Private 或 Friend 显式指定,Sub 过程按缺省情况就是公用的。
第三,private sub和sub过程的写法
一个子过程的声明语句可以有以下多种写法:
第一:
Public Sub AA()
MsgBox "AA"
End Sub
第二:
Private Sub BB()
MsgBox "BB"
End Sub
第三:
Sub CC()
MsgBox "CC"
End Sub
以上三个过程的区别在于过程AA使用了Public语句,使过程成为工程级别的过程,在当前工程中任何模块都可以调用。过程BB使用了Private语句,则为模块级别的过程,只能当前模块可以调用此程序。过程CC使用了缺省设置,它的级别等同于过程AA。
Public sub和Private sub只能选一个,选择了Public sub就不能选择Private sub,反之亦然。一个工作薄中一个过程被申明为Public sub后,表明声明的过程是一个公共过程,一个过程被申明为公共过程之后,就表明该工作薄中所有的模块中的其它的过程都可以访问这个过程。
Private sub过程只有同一个模块中的其它过程才能访问。
private sub 和sub过程在调用方面的区别:我们在excel工作表中使用快捷键“Alt+F8”打开宏对话框,只能看到过程AA和过程CC。也就是说private sub过程是不会显示在宏对话框里面的。
第四,private sub和sub过程的调用方法
也就是从一个过程执行另一个过程的方法:
Sub 公共()
MsgBox "部落窝论坛:www.blwbbs.com欢迎你。"
End Sub
Private Sub 私有()
MsgBox "这是我的窝窝私人空间。"
End Sub
上面分别是sub和private sub过程。下面我们来讲讲调用方法。
调用方法一:直接使用过程名
1.调用sub 公共()
Sub 调用()
公共
End Sub
2.调用Private Sub 私有()
Sub 调用()
私有
End Sub
调用方法二:使用call调用
在过程名称前使用call关键字:call 过程名
Sub 调用()
Call 公共
Call 私有
End Sub
调用的两个过程写在一起,先执行第一个再执行第二个。
调用方法三:利用Application对象的Run方法:Application.Run 过程名
Sub 调用()
Application.Run "公共"
End Sub
过程名称也可以是字符串变量,比如下面这样写:
Sub 调用()
Dim a As String
a = "私有"
Application.Run a
End Sub


猜你喜欢
- 想必很多用户都有遇到过,点击打开某个文件的时候,会出现文件名太长的提示,而此时的文件不仅不能重命名,同时还不能直接删除,那么这时候该怎么办呢
- C盘中的appdata文件夹里有一个roaming文件夹,Roaming是软件运行时和结束后的数据和配置文件,你如果查看roaming文件的
- 大家都知道,照片查看器主要用来管理查看图片,升级win10系统后发现图片打开方式中没有照片查看器,如果要下载其他图片查看软件又很麻烦,而且还
- Windows7系统是目前最新的操作系统,很多用户对于Windows7系统都不太熟悉,为了大家更好的使用Windows7系统,这里小编给大家
- win10预览版9926官方ISO镜像下载地址发布,大家是不是也想体验下win10预览版呢?下面绿茶小豆子为大家带来win10预览版9926
- 众所周知,Win8系统的保留分区是指安装Win8系统时给系统引导文件预留的空间,Win8升级到Win8.1时提示“我们无法更新系统的保留分区
- Windows 10 的 DPI 自定义缩放默认有 100%、125%、150% 及更高的几档级别,其实除选项的下拉列表之外,用户是可以手动
- Windows文件保护是一项非常强大的功能,它可以防止程序替换重要的Windows系统文件,时刻保护着系统文件的安全。那么,Win10系统如
- 如何解决Win8系统Chrome更新失败错误代码0X00000000的问题?我们知道Chrome里面有检查更新的功能,一段时间后就要去更新一
- Win10专业版系统的还原点是一个全新的功能,与系统中的备份功能有点相似,但又有区别,不能把它们当成同一个功能。那么创建还原点和备份具体哪里
- Excel用SUMIFS函数求某城市两款产品销售额,例如求广州市A和C产品销售额:输入公式=SUM(SUMIFS(C2:C13,A2:A13
- 现在,有很多创业者为了能够更好的创业,都会在创业之前进行创业测评,以此来选择合适的创业项目。而刚好,在58同城中,就有一个创业测评功能,可供
- 使用 CheckRa1n 越狱工具可以对运行 iOS 13 的 A5-A11 设备进行越狱,不过很多插件会因为系统版本原因而不兼容
- edge浏览器提示不是私密连接怎么办?很多小伙伴都在使用浏览器的时候遇到了提示了您的连接不是私密连接情况,这是怎么回事呢?这种情况多是电脑上
- PPT图文环绕怎么设置?近期有用户PPT内的进行图文排版时,想要制作出文字环绕图形排版的效果,那么应该如何操作呢?不清楚具体步骤的朋友们,可
- PPT怎么绘制百度回享度的图标?ppt中想要绘制一个矢量图标,该怎么绘制百度回享度的图标呢?下面我们就来看看详细的教程,需要的朋友可以参考下
- 升级Win10后风扇大功率转动声音很响,长时键下去电脑肯定要报废,电脑风扇一直转动虽然降温,但是对于电脑的性能却有影响,该怎么办呢?其实只要
- Microsoft Team是微软Office套件中一个用于公司团队或项目团队的交流工具,集成了在线聊天,视频会议,文件共享等诸多团队常用的
- Excel 中的日期数据几乎都是以“2014/1/1”的形式显示在单元格中的。而日期数据的实质其实是“序列值”。比如说,在单元格 A1中输入
- 说起office,相信小伙伴们都不会感到陌上,office中包含的word文档,Excel表格,PPT演示文稿是我们经常使用到的办公软件。其