通过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

相关推荐

  • treeview添加子节点出现的两个问题

    1、子节点中间排序不正确1和11,12,13在一起,2和21,22,23在一起。2、添加子节点的时候中间会少节点数下面有图片,请各位帮我分析一下。谢谢了 图片说明:  &…

    2017年6月13日
  • 变量记录运行系统打不开

    我是新手,刚接触wincc不久,特向各位老师请教一个问题我的wincc6.2图形运行系统和文本库数据库运行系统都能打开,但是在勾选了“计算机属性”“启动”里的变量记录运行系统后,当…

    SIMATIC WinCC 2019年6月11日
  • 为什么输出显示星号

    我的输出值连的是一个浮点数的变量。有时候输出值是正确的,可是有时候输出的确实***,不知道是什么原因。 最佳答案 注意两点一个是显示位数,比如WINCC里面的数据定义的是3位数,而…

    SIMATIC WinCC 2019年6月11日
  • 只利用WINCC做一个时间报警程序

    因不是很熟悉WINCC的脚本功能,想只利用WINCC做一个电机时间运行时间的监控,只要到了30天就输出一个报警,按下复位按钮后会重启开始计时;各位高手们有什么办法,在下对WINCC…

    SIMATIC WinCC 2021年7月5日
  • WINCC中在线趋势控件开始和结束时间的设置问题

    请问: 我想在线趋势控件中显示一个特定时间段的曲线。 我写的代码如下: char *str_a; char *str_b…

    SIMATIC WinCC 2019年6月11日
  • WINCC输入输出域最高位显示补0的问题

    WINCC输入输出域将十进制数据显示为6位二进制,怎么在最高位补0啊?比如21显示为二进制是10101,但是需要在最高位补0,也就是显示成010101.请问大神什么设置啊? 最佳答…

    SIMATIC WinCC 2021年7月5日
  • wincc comfort v14 sp1

    为什么打不开HMI画面呢?提示内容如下图,是少安装其余软件吗?如果是能提供一下安装包吗?谢谢! 图片说明:       最佳答案 1、应该是…

    2020年11月1日
  • wincc7.4 项目 运行方式快捷启动

    以前7.4之前我用autostartrt启动运行项目(不带编辑的)都可以,7.4不行了,求哪位高手指点下 钻石用户推荐最佳答案 方法一1. 将开始-程序-西门子程序-wi…

    SIMATIC WinCC 2021年7月5日
  • 取控件时间后如何转换

    各位大侠:    小弟取控件时间后与显示相差08小时,即格林威治时间和北京时间的差别,代码如下: sSql =&nbsp…

    SIMATIC WinCC 2019年6月11日
  • 西门子触摸屏在线离线模拟问题

    PLC使用仿真,触摸屏使用仿真→可以操作PLC使用实体连接,触摸屏使用仿真→变量无法读写PLC 问题补充:WIN10在哪里进入PC/PG修改网卡 图片说明:  &nbsp…

    2021年7月5日