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

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

For Each ExcelBook In ExcelApp.WorkBooks

   If ExcelBook.FullName = "D:\Excelcode.xlsx" Then

       ExcelApp.ActiveWorkbook.Save

          ExcelApp.Workbooks.Close

          ExcelApp.Quit

       Set ExcelApp= Nothing

       Exit For

   End If

  Next

End If

Set objExcelApp =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
End Sub

问题补充:
多谢逆行道的解答,您提供的例子我仔细学习过了,但我的问题仍然存在。
我想实现的效果是这样的:
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

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

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc223562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年3月6日
下一篇 2018年3月6日

相关推荐