通过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画面时不断出现AUTOCAD的安装提示???

    我已经安装了wincc6.0,但是进入编辑状态后,想打开wincc画面进行编辑组态,然而打开WINCC画面时不断出现AUTOCAD的安装提示???连续几次取消安装AutoCAD的操…

    SIMATIC WinCC 2019年6月11日
  • wincc7.3变址寻址问题(一个地址+地址偏移量)

    请教各位大神,wincc7.3变量怎么进行变址寻址?就是采用(一个地址+地址偏移量)的寻址方式,行不行?如果行,采用C脚本编程寻址怎么编写?谢谢。。 最佳答案 不行的,WINCC读…

    SIMATIC WinCC 2017年6月1日
  • WINCC 关闭时 复位正在运行的点

    如果做到WINCC 取消运行关闭时 可以复位PLC正在运行的点,如关闭某个正在运行的马达? 最佳答案 youhm的方法挺好的,编程的时候要注意的是wincc的刷…

    SIMATIC WinCC 2019年6月11日
  • wincc功能异常

    我的wincc v6.0 是安装在XP SP2中的,自己安装学习用的本来用得好好的,安装的时候安装了:一个XP SP2的补丁SQL&nbsp…

    2018年12月9日
  • wincc6.2修改自定义数据库指定行的数值

    小弟我在网上查的一段代码,用WINCC6.2的按钮事件往SQL自定义数据库里写数据已经能够实现,但我还需要一个修改数据库指定行数据的代码,比如图片1中所示,将data1列里数值为8…

    SIMATIC WinCC 2017年10月24日
  • MP377记录数据如何导出来?

    MP377记录数据为了防止新数据把旧数据覆盖,想定期把数据拷贝出来,通过U盘可以吗? 我见触摸屏上有CF卡插槽,通过CF可以吗? 还有导出的数据通过什么方式可以…

    SIMATIC WinCC 2019年6月11日
  • WINCC V6.2 SP3亚洲版 点激活后 一点反应都没有

    如题,项目名称没有中文,计算机名称与本机相同,单机激活项目后,无任何反应,希望经验丰富的各位帮帮忙。 问题补充:新建项目也不能运行,软件重新安装也不行,没有任何错误提示,完全的毫无…

    SIMATIC WinCC 2018年12月14日
  • WINcc 过程值归档

    过称值归档的触发条件存放在文件中,怎样将其载入并赋予变量。触发条件即当前过称值比上次的归档值变化超过了多少就归档     &nbs…

    SIMATIC WinCC 2019年6月11日
  • winCC系统信息的日期格式转换

    我在winCC的系统信息中建立一个日期变量和时间变量。可是日期格式没有我所需要的,我想将日期格式转换为YYYY-MM-DD。通过修改控制面板的日期格式没有效果。通过C脚本想将日期值…

    SIMATIC WinCC 2019年6月11日
  • 关于wincc VBS 脚本求助

    求有时间的大神帮我写段vbs脚本。我想做个程序,按用户输入时间段读取归档变量,然后随意选了其中一条,按顺序显示在输出域中。从网上找了几个脚本,用不了。 求大神帮忙写一个,…

    SIMATIC WinCC 2021年7月5日