> 馆藏中心

【原】神奇的Excel VBA系列之:判断是否存在指定名称的工作表

来源:用户 神奇的Exc... 收藏 编辑:王阿强

在前一篇文章神奇的Excel VBA系列之:制作工作表目录中,分享了制作工作表目录的源码过程。 其中有个判断当前工作簿中是否存在指定名称的工作表代码片段。 本篇中将介绍几种使用VBA代码来判断工作表是否存在的方法。有关Excel VBA编程,可参考使用《神奇的VBA》插件。

假设我们想判断工作簿中是否有名称为“东门子订单数据”的工作表。

第一种方法: 使用VBA遍历循环的方法

Sub 判断工作表是否存在_方法1() Dim sht As Worksheet For Each sht In Worksheets If sht.Name = "东门子订单数据" Then MsgBox "存在" Exit Sub End If Next MsgBox "不存在" End Sub

该方法中综合运用了,For Each遍历循环语句和 Exist Sub语句来返回是否存在的结果。  这种方法VBA初学者最开始会选用这种思路。不过对于初学者而言,务必注意在循环语句中加入Exist Sub,否则将永远显示不存在。

第2中方法: VBA 字典方法

Sub 判断工作表是否存在_方法2() Dim d As Object Set d = CreateObject("Scripting.Dictionary") Dim sht As Worksheet For Each sht In Worksheets d(sht.Name) = "" Next If d.exists("东门子订单数据") Then MsgBox "存在" Else MsgBox "不存在" End If End Sub

第3种方法: 巧妙运用On Error...错误语句方法来判断是否存在。

Sub 判断工作表是否存在_方法3() Dim sht As Worksheet On Error Resume Next Set sht = Worksheets("东门子订单数据") If Not sht Is Nothing Then MsgBox "存在" Else MsgBox "不存在" End If Set sht = Nothing End Sub

我们也可以将平时职场VBA编程中高频重复的代码片段写成通用函数,以便其它VBA程序调用。以第一种方法为例。 我们改造写成如下Function函数代码形式:

Function IsSheetExisted(tabname As String) As Boolean Dim sht As Worksheet For Each sht In Worksheets If sht.Name = tabname Then IsSheetExisted = True Exit Function End If Next IsSheetExisted = False End Function

我们将函数名随便起了个名字叫IsSheetExisted,函数只有一个字符串型参数tabname代表以后要传入的工作表标签名称,函数返回Boolean类型结果(True/False)。下面,我们就可以在其它VBA程序中使用该函数了,见下面代码: 

Sub 判断工作表是否存在() MsgBox IIf(IsSheetExisted(""), "存在", "不存在") End Sub

我们也可是在单元格区域中使用上面的IsSheetExisted函数。

暂时就简单介绍到这里!上面源码复制下来,自己试一下吧。

有关Excel VBA编程知识(超多职场牛人的必备秘技),请安装使用一款优秀职场人必备的工具《神奇的VBA》插件,一款嵌入进Excel软件窗口功能区界面的应用,打开任意Excel工作簿就能随时参考查阅学习VBA编程的Excel 插件。

赞赏 共11人赞赏

本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。本文《【原】神奇的Excel VBA系列之:判断是否存在指定名称的工作表》由网友神奇的Exc... 转载收藏,版权归原作者所有,
违法违规信息请立即联系本网可获得现金奖励,

www.wosoni.com false 互联网 http://www.wosoni.com/view/socangkugm/mgdd/dz/ccmdcdkkWSNlkdgjgkls.html report 5035

热门图片

经济金融企业管理法律法规社会民生科学教育降生活体育运动文化艺术电子数码电脑网络娱乐休闲行政地区心理分析医疗卫生