通过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日 下午12:37
下一篇 2018年3月6日 下午12:37

相关推荐

  • wincc数据曲线显示长度

    数据归档一秒一个数据,想在趋势图里面看去年一年的曲线,但是历史曲线只能显示十个月的,请问是什么原因?历史曲线的长度有没有限制? 问题补充:请问yanyanyan,第二种情况怎么处理…

    2021年7月5日
  • wincc中打开指定画面时,对部分变量进行赋值。

    在主画面中打开指定的画面时对Wincc中部分变量赋值为1,关闭时赋值为0。要怎么实现呢? 问题补充:或者可以这样说,如果指定的画面被打开则,相应的变量为1;如果此画面被关闭,则此变…

    SIMATIC WinCC 2017年7月30日
  • WINCC报警回路

    各位大圣,点击屏幕报警后如何跳转至预先编辑好的PDF 图片说明:    最佳答案 先新建一个打开pdf文件的函数,定义一个函数参数用来传递pdf文件名c脚本怎么…

    2020年11月1日
  • 激活项目时不可用,autostart不可用

    现场的工程运行一段时间了,但电脑重启后出现如图的错误提示,有什么解决办法吗? 问题补充:图片补充 图片说明:    最佳答案 查看控制面板\管理工具\服务,相关…

    2017年6月10日
  • 读取wincc冗余OPCServer.WinCC问题

    我有台服务器安装了WINCC7.0SP2经过OPCServer.WinCC协议方式读取其他厂家WINCC6.2内的数据,但该厂家有两台WINCC服务器做冗余,目前访问冗余的主服务器…

    SIMATIC WinCC 2019年6月10日
  • 跪求KTP700的USB恢复文件,不胜感激

    小弟公司有个KTP700的屏开机黄字无限重启,跪求KTP700的USB恢复文件,不胜感激 钻石用户推荐最佳答案 Basic2nd_Recovery_System.zip链接:htt…

    SIMATIC WinCC 2021年7月5日
  • 两台WINCC的OPC通信

    两台计算机一台在设备现场通过pc access读取s7-200运行正常,如果远程计算机通过Internet访问现场计算机应如何实现?有资料没有发我邮箱一份?谢谢 问题补充…

    SIMATIC WinCC 2019年6月11日
  • listview显示小数的问题

    在listview控件里面 如果显示小数,比如说0.1的时候,它只显示.1前面的零没有了,这怎么回事啊 最佳答案 如果是使用VBS脚本,利用CStr函数将数值型变量,转换…

    SIMATIC WinCC 2019年6月11日
  • 怎么把一个外部字变量的各位拆分给内部二进制变量

    各位大侠请给予帮助!情况是这样的:我在WINCC中建立一个外部字变量,但是我需要字变量里各个位的信息。请问该如何拆分,怎么把字变量里的各位赋值给我建立的内部二进制变量(或者其他方法…

    SIMATIC WinCC 2019年6月11日
  • wincc定时退出

    wincc定时退出,我在wincc设置退出时间,当提取的系统时间大于设置时间时,wincc自动退出。我在系统的启动画面的画面打开属性和某个按钮的鼠标点击上加上了此功能的C脚本,这样…

    SIMATIC WinCC 2019年6月11日