当前位置: 主页 > PLC控制

通过vbs在excel中记录数据的问题

想实现在wincc中生成excel报表功能,在网上搜集了一些代码,现在的可以通过vbs中CreateObject的方法实现基本的读写。但有一个问题始终无法解决:每次在记录数据时,都要重新打开excel文件。我想实现的效果是在一个始终打开的excel文件中追加记录,同时也可以手动添加/修改数据。
不知道有没有这样的方法?请高手指导,谢谢了!下面附上我测试时的代码:
SubteST3
OnErrorResumeNext
DimExcelApp
SetExcelApp=GetObject(,"Excel.Application")
IfTypeName(ExcelApp)="Application"Then

ForEachExcelBookInExcelApp.WorkBooks

IfExcelBook.FullName="D:\Excelcode.xlsx"Then

ExcelApp.ActiveWorkbook.Save

ExcelApp.Workbooks.Close

ExcelApp.Quit

SetExcelApp=Nothing

ExitFor

EndIf

Next

EndIf

SetobjExcelApp=CreateObject("Excel.Application")

objExcelApp.Visible=True

objExcelApp.Workbooks.Open"D:\Excelcode.xlsx"

objExcelApp.Worksheets("repoRT").Activate

objExcelApp.Cells(4,3).Value=HMIRuntime.Tags("usercodenew1").Read

objExcelApp.ActiveWorkbook.Save
EndSub

问题补充:
多谢逆行道的解答,您提供的例子我仔细学习过了,但我的问题仍然存在。
我想实现的效果是这样的:
1.在数据记录过程中,excel表格一直打开,且为可见。
2.一个sheet中会多次记录数据。
3.sheet中的一些内容需要人工输入,所以不希望excel被关闭再打开(关闭时可能正在进行人工输入)。
我找到的VBS代码中,都使用了OPEN方法,且在OPEN之前必须先CLOSE,否则会打开双份。有没有一种方法可以直接指定一个打开的excel文件进行读写?或是能实现我想要的效果。请大家指导,谢谢了!

最佳答案

你做的不错,可参考:《在WinCC中如何使用VBS读取报警记录数据到EXCEL》
htTP://www.ad.siemens.com.cn/download/docMessage.ASpx?id=6038
《用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例》
http://wenku.baidu.com/view/379b9916a2161479171128ac.html

提问者对于答案的评价:
谢谢!

  • 关注微信

猜你喜欢

微信公众号