乐冠国际
最新动态

你的位置:乐冠国际 > 最新动态 > VBA判定工作簿是否打开

VBA判定工作簿是否打开

发布日期:2024-09-02 13:29    点击次数:146

送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

【置顶公众号】或者【设为星标】及时接收更新不迷路

图片

小伙伴们,在实际工作中有时候需要来判断一个工作簿是否已经打开,以及操作判断后的后续操作。这个任务使用VBA方法可以轻松的完成。甚至,还可以将代码封装为函数,在以后需要使用时可以随时调出使用。

今天这篇帖子,将介绍两种最为常用的判断方法。

01

遍历法

判断工作簿是否打开,其实只需要循环判断工作簿的名称是否等于指定的名称。

图片

完整代码如下:

Sub 判定工作簿是打开()    Dim 工作簿名称 As String, wbk As Workbook    Dim isopen As String    isopen = "未打开"    工作簿名称 = "ABC.xlsx"    For Each wbk In Workbooks        If wbk.Name = 工作簿名称 Then            isopen = "打开"        End If    Next    MsgBox (工作簿名称 & " " & isopen)    End Sub

第6-10行代码:对于工作簿集合中的每一个打开的工作簿,只要其名称等于指定的名称“ABC.xlsx”,就对变量isopen赋值“打开”。

02

错误判断

利用错误判断法,不需要遍历当前应用程序中全部工作簿即可实现判断工作簿是否已经打开。

图片

完整代码如下:

Dim wbkname As StringFunction WBKopen(wbkname) As Boolean    Dim wbk As Workbook    Dim isopen As Boolean    On Error Resume Next    Err.Clear    Set wbk = Workbooks(wbkname)    If Err.Number = 0 Then        isopen = True    Else        isopen = False    End If    WBKopen = isopenEnd FunctionSub 判定工作簿是打开1()    wbkname = "ABC.xlsx"    If WBKopen(wbkname) Then        MsgBox (wbkname & "已打开")    Else        MsgBox (wbkname & "未打开")    End IfEnd Sub

第2-14行代码:首先做了一个简单函数封装。当第8行代码中错误值的编号等于0时,表明这张工作簿是打开的状态。并根据Err.number的值来对变量isopen分别赋值。

第16-22行代码:判断工作簿是否打开,并通过消息框输出信息。

事际上,我们不可能判断后仅仅将结果传递给Msgbox。事际工作中还可以分别用2组不同的代码来替代Msgbox,一组执行打开时的后续操作;另一组执行未打开时的后续操作。

本期内容练习文件提取方式:

链接:https://pan.baidu.com/s/1F_lFKSFzgfYYwBstn7QMKQ?pwd=gpul

提取码:gpul

好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

我就知道你“在看”

推荐阅读

遇到难题莫慌张,有时候解决它仅仅只需一列辅助列!

VLOOKUP vs INDEX+MATCH组合,简单才更好

逻辑简单题目不难,IF函数说:“你就不要和我抢了!”

有哪些函数可以实现隔列求和

你知道如何按照背景色或者字体颜色来求和吗?

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

首页| 关于乐冠国际 | 业务范围 | 最新动态 | 联系我们 |

Powered by 乐冠国际 @2013-2022 RSS地图 HTML地图