经常,写的程序需要保存/打开/编辑某个xls文件,而xls文件被任何程序打开时,其他程序将无法对他进行编辑、删除操作。
这是需要检测xls文件是否被打开,然后提醒程序来进行后续处理。
这里只是vbs程序的一个例子。
这是需要检测xls文件是否被打开,然后提醒程序来进行后续处理。
这里只是vbs程序的一个例子。
'参数sFile, xls文件绝对路径,如 F:\Excel.xls
Public Function IsFileOpen(sFile)
Dim isOpen
isOpen=false
On Error Resume Next '遇到错误继续执行下一行
Dim xlsapp
Dim i
Set xlsapp=GetObject(,"Excel.Application") '获取当前运行的Excel应用程序对象,获取失败则xlsapp为空
If Isempty(xlsapp) Then '判断xlsapp是否为空
'msgbox "Excel没打开"
isOpen=False
Else
For i = 1 To xlsapp.Workbooks.count '遍历当前Excel工作簿集合
If Lcase(xlsapp.Workbooks(i).Path & "\" & xlsapp.Workbooks(i).Name) = Lcase(sFile) Then '比较工作薄文件名和路径,为防止大小写差异统一转换为小写进行比较
'Msgbox sFile&" 已打开" 'F:\Excel.xls
isOpen=True
Exit For
End If
Next
End If
Set xlsapp=Nothing '释放对象
IsFileOpen=isOpen
End Function