Set excellapp = GetObject(, "Excel.Application") ' 连接Excel应用程序
If excellapp Is Nothing Then
Thisdrawing.Utility.Prompt "Excel应用程序未运行或为不支持的版本,请先打开表格再进行操作。" & vbCrLf
GoTo lb1
End If
调用FileOpenExists函数判断表格文件是否打开
用法:
if FileOpenExists("d:\test.xls") then
msgbox "文件已经打开"
else
msgbox "文件没有打开"
endif
注意:如果系统中有多个EXCEL实例时例外(需将GetObject带上文件完整路径)
Private Function FileOpenExists(FilePath As String) As Boolean
Dim objExcelApp As Object
Dim objBook As Object
Dim objBooks As Object
Set objExcelApp = GetObject(, "Excel.Application") '获得系统中运行的EXCEL对象
Set objBooks = objExcelApp.Workbooks '获得工作薄集合
For Each objBook In objBooks '循环每个工作簿的完整路径,判断是否文件是否打开
If UCase(FilePath) = UCase(objBook.fullname) Then '如果找到
FileOpenExists = True '返回真
Exit For '退出循环
End If
Debug.Print objBook.fullname '显示完整路径
Next
End Function