如何在Wincc中判断一个已存在的的Excel文件已经打开?

我通过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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午10:11
下一篇 2019年6月11日 上午10:11

相关推荐