我通过Wincc脚本(VB)打开并读写一个已存在的Excel文件中的数据。但在脚本中打开这个文件之前,如何判断这个文件已经打开?因为有可能这个文件已经被打开并正在被编辑,这种情况下脚本程序就不再运行打开Excel文件的语句了。
最佳答案
相同问题见<VBS 判断EXCEL是否打开>:
http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=25622&cid=1032
------------------------------------------------------------------------------------------
需要使用GetObject来获取Excel进程句柄,从而判断EXCEL文件是否已被打开。
On Error Resume Next '此句必须有,防止无EXCEL进程时GetObject出错
Dim xlApp,xlBook
Dim isXlsOpen
isXlsOpen = False
Set xlApp = GetObject(,"Excel.Application") '获取EXCEL进程
If TypeName(xlApp) = "Application" Then '检测到有Excel进程已经打开
For Each xlBook In xlApp.WorkBooks '循环检查Excel进程打开的Workbooks
'MsgBox xlBook.FullName
If xlBook.FullName = "D:\TEMP.XLS" Then '如果路径与所检查的文件一致
isXlsOpen =True
Exit For
End If
Next
End If
提问者对于答案的评价:
thanks!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc273731.html