怎样向一个已经打开的xls文件写数据。
wincc创建的xls文件可能被用户打开,此时wincc无法向xls文件写入数据,怎么解决这个问题。
谢谢了。
最佳答案
通常操作xls文件的流程是CreateObject("Excel.Application")、然后是WorkBooks.Open(xxx),如果EXCEL文件已打开,可使用如下脚本:
On Error Resume Next '#必加,否则GetObject会报错
Dim oExcelFile,oExcel,oWorkBook,oSheet
oExcelFile= "D:\MyFile.xls"
Set oExcel = GetObject(,"Excel.Application") '#试图获取已经打开的EXCEL进程
'MsgBox TypeName(oExcel)
If VarType(oExcel)=vbEmpty Then '#如果未找到EXCEL进程,则由CreateObject新建
Set oExcel = CreateObject("Excel.Application") '#新建EXCEL进程
End If
Set oWorkBook = oExcel.workbooks("MyFile.xls") '#试图获取已经打开的Excel文件
'MsgBox TypeName(oWorkBook)
If VarType(oWorkBook)=vbEmpty Then '#如未找到,则有Open打开Excel文件
Set oWorkBook = oExcel.workbooks.OPen(oExcelFile) '#打开Excel文件
'MsgBox oExcelFile & " Open Succeed!"
End If
Set oSheet = oWorkBook.Sheets("Sheet1")
'.............对表进行操作
提问者对于答案的评价:
多谢!!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc275724.html