判断Excel工作簿文件是否被打开
- 2019-11-18 09:05:00
- zstmtony 原创
- 18109
工作场景中,可能有时处理数据之前,可能需要使用VBA先判断待处理的Excel文件是否已经被别人打开,如果打开,需要提示先关闭或代码强制关闭。
那如何判断工作簿已经被打开呢,有以下一些方法
方法1:
Const strFileName As String = "你的文件.xls" Sub CheckFileIsOpen() Dim xApp As Application Set xApp = CreateObject("Excel.Application") xApp.DisplayAlerts = False On Error GoTo Error_Handler xApp.Workbooks.Open Filename:=ThisWorkbook.Path & "" & strFileName, notify:=False, ReadOnly:=False If xApp.ActiveWorkbook.ReadOnly = True Then MsgBox "文件已经被打开!" Else MsgBox "文件未被打开!" End If GoTo Exit_Handler Error_Handler: MsgBox "File is not exist" Exit_Handler: xApp.Quit End Sub
方法2:
Dim wb As Workbook Set wb = GetObject("G:\测试工作簿.xlsx") ' If wb.IsInplace = False Then If wb.ReadOnly = True Then MsgBox "指定的工作簿已经被打开了" wb.Close Set wb = Nothing Exit Sub Else wb.Close Set wb = Nothing End If
方法3:
Sub 判断文件是否已经打开() Dim x As Integer For x = 1 To Windows.Count If Windows(x).Caption = "test.xls" Then MsgBox "test文件已经打开了" Exit Sub Else MsgBox "test文件没有被打开!" End If Next End Sub
方法4:
判断一个指定的工作簿文件是否打开 先将下面的VBA代码放到一个标准模块中,然后在需要的地方进行调用。 '如果目标工作簿已打开则返回TRUE,否则返回FALSE Function IsWkLoaded(strWbName As String) As Boolean Dim i As Long For i = Workbooks.Count To 1 Step -1 If Workbooks(i).Name = strWbName Then Exit For End If Next '如果工作簿未找到 If i = 0 Then IsWkLoaded = False Else IsWkLoaded = True End If End Function 调用示例如下,将“Book2.xls”换成指定的工作簿名称: Sub 调用() If IsWkLoaded("test.xls") Then MsgBox "指定的工作簿已打开" Else MsgBox "指定的工作簿没有打开" End If End Sub
Access数据库自身
- office课程播放地址及课程明细
- Excel Word PPT Access VBA等Office技巧学习平台
- 将( .accdb) 文件格式数据库转换为早期版本(.mdb)的文件格式
- 将早期的数据库文件格式(.mdb)转换为 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 数据库引擎和访问连接引擎以阻止对远程数据库的访问(remote table)
- Access 365 /Access 2019 数据库中哪些函数功能和属性被沙箱模式阻止(如未启动宏时)
- Access Runtime(运行时)最全的下载(2007 2010 2013 2016 2019 Access 365)
Access Activex第三方控件
- Activex控件或Dll 在某些电脑无法正常注册的解决办法(regsvr32注册时卡住)
- office使用部分控件时提示“您没有使用该ActiveX控件许可的问题”的解决方法
- RTF文件(富文本格式)的一些解析
- Access树控件(treeview) 64位Office下出现横向滚动条不会自动定位的解决办法
- Access中国树控件 在win10电脑 节点行间距太小的解决办法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 树控件 ListView列表等64位MSCOMMCTL.OCX控件下载
- VBA或VB6调用WebService(直接Post方式)并解析返回的XML
Access ADP Sql Server等
- 早期PB程序连接Sqlserver出现错误
- MMC 不能打开文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版
- sql server连接不了的解决办法
- localhost与127.0.0.1区别
- Roych的浅谈数据库开发系列(Sql Server)
- sqlserver 自动备份对备份目录没有存取权限的解决办法
- 安装Sql server 2005 express 和SQLServer2005 Express版企业管理器 SQLServer2005_SSMSEE
文章分类
联系我们
联系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |