On Error Resume Next
Dim xlApp,xlBook,oExcelFile
oExcelFile = "D:\日报表模板.xlsx" '全部代码只需改变文件的路径就可以,其他不用作任何改动
Dim isXlsOpen
isXlsOpen = False
Set xlApp = GetObject(,"Excel.Application") '获取EXCEL进程
If TypeName(xlApp) <> "Application" Then '检测到有Excel进程已经打开
Set xlApp = CreateObject("Excel.Application")
End If
xlBookFind= False
For Each oBook In xlApp.WorkBooks '循环检查Excel进程打开的Workbooks
'MsgBox xlBook.FullName
If oBook.FullName = oExcelFile Then '如果路径与所检查的文件一致
Set xlBook = oBook
xlBookFind = True
Exit For
End If
Next
If xlBookFind=False Then '#如果没有找到
xlApp.Visible=True'要打开的文件是否显示或是在后台运行
Set xlBook = xlApp.Workbooks.Open(oExcelFile)
xlApp.worksheets(sheetname).activate
End If
Dim tag5h2so4,tagshijian,sheetname
sheetname="sheet1"
Set tag5h2so4=HMIRuntime.Tags("Minute")
tagshijian=Now
tag5h2so4.read
xlApp.Worksheets(sheetname).cells(tag5h2so4.value+4,1).value=tagshijian
以上脚本每一分钟触发一次,模板表格打开后,从第二条记录开始总是有重新打开模板表格,而不是在已经存在的表格里继续往下添加,我试着改了,但没有改好。。。高手帮忙看看是什么原因啊
最佳答案
If TypeName(xlApp) <> "Application" Then ''检测到有Excel进程已经打开
这句有问题,应该是检测Excel.Application吧!
我没有按照你这样的做法做过,我一般是添加一次记录后就保存文件,然后下载检测保存的路径下是否有该文件,如果没有,则打开模板,否则就打开该文件插入新的记录。
提问者对于答案的评价:
大侠,能不能把你的实例发我一份,按你所说的思路,每次都检测是否已经有文件存在,有的话,打开文件添加记录,没有的话打开模板添加。。。我文件是按当前日期存放的。。。请大侠帮帮忙吧 邮箱315485815
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc247180.html