发布日期: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函数说:“你就不要和我抢了!”
有哪些函数可以实现隔列求和
你知道如何按照背景色或者字体颜色来求和吗?
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。