【分享成果,随喜正能量】一念疏忽,是错起头。漫漫人生路,一定要多多反省自己,切莫因疏忽而铸造大过,也不要因为自己的忽视,而让自己后悔莫及。。
《VBA代码解决方案》(10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第57讲:利用VBA,查找指定工作表

第五十八讲 VBA中查找指定工作表的方法
大家好,我们今日继续讲解VBA代码解决方案的第58讲内容:在VBA中查找指定工作表的方法。在上一个例子中,我们通过一个自定义函数解决了删除工作表的方法。其实实现目的的方法有很多种,不必要必须用某种办法,但是写程序的人,比如我,有着很大的惰性,或者说是偏爱某一种方法,比如,我特别喜欢用LEFT和RIGHT来进行左右的截取操作,虽然很多的时候用MID会更简单些。在完成某项目的也是如此,如果不是用自定义函数,只是用遍历工作表的方法也可以实现的。今天的例子也是如此。所以有的朋友自认为自己有更好的方法,其实,有些时你是对的,或者说是对的,但对于做程序的人来说不一定会采用你认为好的方法,就这么简单。
1 查找某个工作表的自定义函数代码
今天我们讲查找某个工作表的方法,在实际的应用中往往要先查到某个工作表,然后再进行操作控制。判断工作簿中是否存在指定名称的工作表,当然可以使用遍历工作簿中所有工作表的方法外,但今天我仍要自定义函数的方法。
Function MyExistSh(sh As String) As Boolean
Dim Sht As Object
On Error Resume Next
Set Sht = Sheets(sh)
If Err.Number = 0 Then MyExistSh = True
Set Sht = Nothing
End Function
代码截图:

代码解析:自定义MyExistSh函数包含一个String类型的参数,代表需要判断的工作表名称。如果该工作表存在,则返回True。
1)第5行代码判断前面的代码是否出错,如果前面的代码存在错误,则表示不存在指定名称的表。
2 查找指定工作表的代码及代码解读
使用自定义MyExistSh函数判断工作簿中是否存在指定名称的工作表,如下面的代码所示。
Sub mynz_58() '58 在VBA中查找指定工作表的方法
Dim sh As String
sh = InputBox("请输入查找的工作表名称:")
If Len(sh) > 0 Then
If Not MyExistSh(sh) Then
MsgBox "对不起,您查找的" & sh & "工作表不存在!"
Else
Sheets(sh).Select
End If
End If
End Sub
代码窗口截图:

代码解析:mynz_58过程使用自定义的MyExistSh函数判断工作簿中是否存在指定名称的工作表,如果不存在则使用消息框进行提示.
代码的运行:

当录入“57”后点击确认,页面的ACTIVESHEET会转到“57”的工作表。

今日内容回向:
1 查找工作表的思路是怎么样的?(先设置这个工作表,确认是否成功,如果能成功,就说明存在)
2 上述代码中If Err.Number = 0 Then MyExistSh = True是什么意思?
本讲内容参考程序文件:VBA代码解决方案(55-60).xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

【分享成果,随喜正能量】心宽一寸,事容一分,生活,大多数时候,都是自己和自己的较量。。