使用excel记录数据

我想实现使用excel记录wincc变量数据的功能,每次打开excel后在新的一行相同列里写入数据,即不能覆盖原有数据。下面这个程序只能每次把变量写在第一行,不能实现写入下一行的功能,请问如何修改?
 Dim objExcelApp
 Set objExcelApp = CreateObject("Excel.Application")
 objExcelApp.Visible = False 'True
 objExcelApp.Workbooks.Open "d:\ExcelExample.xls"
        objExcelApp.Cells(1, 1).Value = ScreenItems("tag1").OutputValue
        objExcelApp.Cells(1, 2).Value = ScreenItems("tag2").OutputValue
        objExcelApp.Cells(1, 3).Value = ScreenItems("tag3").OutputValue
 objExcelApp.ActiveWorkbook.Save
 objExcelApp.Workbooks.Close
 objExcelApp.Quit
 Set objExcelApp = Nothing

问题补充:
谢谢大家的帮助,我用的dcount107的方法已经解决了,城外之人的办法也不错。只是我运行程序时发现一个问题,这个ExcelExample.xls文档需要事先在d盘建立,如果没有建立的话,运行时会报错,说没有找到这个文档,请问如果我想让程序自己建立excel文档的话如何解决?

最佳答案

呵呵,在开始写数时首先要获取第一列空行iBlankLine,然后再进行写入操作

  Dim objExcelApp,oWorkBook
  Set objExcelApp = CreateObject("Excel.Application")
  objExcelApp.Visible = False 'True
  Set oWorkBook = objExcelApp.Workbooks.Open("d:\AA.xls")
  Dim iBlankLine 
  iBlankLine = oWorkBook.ActiveSheet.Columns(1).Find("").Row '查找第一列的空行
  'MsgBox iBlankLine
   objExcelApp.Cells(iBlankLine, 1).Value = ScreenItems("tag1").OutputValue
   objExcelApp.Cells(iBlankLine, 2).Value = ScreenItems("tag2").OutputValue
      objExcelApp.Cells(iBlankLine, 3).Value = ScreenItems("tag3").OutputValue
  oWorkBook.Save
  objExcelApp.Workbooks.Close
  objExcelApp.Quit
  Set objExcelApp = nothing

  补充:Set oWorkBook = objExcelApp.Workbooks.Add
 oWorkBook.SaveAs "D:\ExcelExample.xls"
 即可新建。但这不是完美的解决方法,通过fso组件首先判断这个文件是否存在再决定打开还是创建。fso的代码很多,自己搜索吧!

提问者对于答案的评价:
谢谢,已经解决!

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

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

相关推荐

  • WINCC安装有中文版么

    WINCC有中文版本么?安装时候需要注意些什么 最佳答案 亚洲版里包含中文版,安装之前建议不要安装杀毒软件,很多朋友先安装瑞星杀毒软件,之后安装WinCCWinCC V6…

    SIMATIC WinCC 2019年6月11日
  • K-TP178组态时钟,格式用哪一个

    1 在K-TP178上用变量(而不是系统函数)组态日期和时间,所用的格式是 日期,时间,二进制,十六进制还是十进制啊?2 用系统函数是不是不行啊? 最…

    SIMATIC WinCC 2019年6月11日
  • WinCC V7.4 sp1 ASIA 兼容性列表还是WinCC V7.4 sp1 兼容性列表

    请问:我购买的WINCC 授权是 WinCC V7.4 sp1 亚洲版 组态及运行系统授权,带的安装盘是 Wi…

    2021年7月5日
  • 关于登录后切换界面

    wincc 怎么用VB脚本实现用户登陆成功后自动跳转界面?我的wincc v14为什么没有添加C脚本的徐选项,只能添加VB脚本? 问题补充:没用过vb但大体能看…

    2021年7月5日
  • wincc7.2提示无法启动基本应用程序,请检查您的软件许可证

    是服务器下面挂的一个客户机,授权应该是插在主服务器上,在重启电脑之前项目还可以正常操作运行,但是重启之后就出现了这个问题,客户机一共有两台,都是直接读取在主服务器上边共享的项目,其…

    SIMATIC WinCC 2021年7月5日
  • 在wincc6.0 SP2中实现下列功能

    1.如何不使用用户管理器,而是自己建一个画面有用户名,密码,确定,退出,只有在用户名和密码正确的前提下,才可以进入到下个画面。 2.如何在报警时,实现该报警按钮闪烁,并有…

    SIMATIC WinCC 2019年6月11日
  • Wincc 与PLC 的profibus通讯

    各位大虾,好象Wincc 与PLC 的S7-200通讯,加了EM277模块就可以不用pc ACCESS ,走PROFIBUS通讯就行了,S7…

    SIMATIC WinCC 2019年6月11日
  • CP1613A2能代替CP5611吗?

    我是第一次设计工业以太网,刚开始组态硬件。想问一个很初级的问题。系统有两台工控机,都安装了WINCC,4台S7-300的PLC。以前WINCC和S7-300PLC通讯都是用CP56…

    SIMATIC WinCC 2019年6月11日
  • TP177A用户授权丢失

    TP177A里我建了三个用户,别人登录时可能是密码不对超过了三次,结果用户的分组授权丢了,而其是最高级别的,现在这个用户名已经不能登录了,重启触摸屏后还是不行。除了重新下载程序还有…

    SIMATIC WinCC 2019年6月11日
  • 如何把阀门的画面插入到主画面中

    我的主画面中有许多设备,例如阀门 电机等,我想点击相应的设备弹出对应的小画面(平时这个小画面是隐藏的),这个小画面中(例如1#电机)有“启停”按钮和运行指示灯等,操作完成…

    SIMATIC WinCC 2019年6月11日