使用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日 下午12:34
下一篇 2019年6月11日 下午12:35

相关推荐

  • modbus opc server

    那里有ModBus OPC server的使用说明呀,我下载了一个,可是看的我一头雾水 问题补充:我是想把ModBus协议的数据转换成opc的数据,需要这个软件…

    SIMATIC WinCC 2019年6月11日
  • wincc调用step7中的变量

    我的wincc是7.0 sp3,step7是V5.5 sp3能兼容么,怎么从step7中复制变量,希望大神能教我一下 问题补充:在step7符号表中能做标记,但…

    SIMATIC WinCC 2017年11月13日
  • wincc 有没有函数判断变量是否存在

    因为要批量更改数据,有些变量不存在,想跳过。有没有函数可以判断变量是否存在。 最佳答案 你可以通过获取变量的质量代码来判断该变量是否存在!1、VBS获取质量代码: &nb…

    SIMATIC WinCC 2021年7月5日
  • wincc 如何读入excel的数据

    wincc通过什么方式可以依次顺序读入excel列的数据,要是写入有什么办法 最佳答案 详细信息参见下列资料——《如何导出和重新导入WinCC 运行时数据》:http:/…

    SIMATIC WinCC 2019年6月11日
  • WinCC flexible 2008 SP4问题TITI

    安装不了 图片说明:    最佳答案 检查安装的软件包是否为WinCC Flexible 2008 SP4,如果不安装WinCC&…

    2017年5月31日
  • wincc 加密问题

    一个输入/输出型I/O域(0-99),我想在输入0-12时提示输入密码,正确输入后显示相应数据;当输入12-99时不需要密码,请高手们指点指点,灰常感谢! 最佳答案 那只有脚本了在…

    SIMATIC WinCC 2019年6月10日
  • 组态王与300通讯问题

    组态王运行一段时间后,出现“TOUCHVEW.EXE—应用程序错误”“ox020dce20"指令引用的”0x000000"内存,该内存不能为“read&qu…

    SIMATIC WinCC 2019年6月11日
  • ms_flexgrid 控件的vbs脚本放在哪里

    ms_flexgrid 控件的vbs脚本放在哪里 问题补充:rission:你好经过一段时间的学习,我准备:1、wincc画面显示数据:mshflexgrid控件&nbs…

    SIMATIC WinCC 2019年6月11日
  • 双击桌面Wincc flexivble 2008 SP5快捷启动图标,后报找不到HmiES.exe

    正版Wincc flexivble 2008 SP5 之前用的好好的,今天就打不开了。“双击桌面Wincc flexivble&n…

    2021年7月5日
  • wincc 按钮 切换

    比如对m0.0,按钮按下第一次置位,再按下复位,如此反复  请哪位指点下 最佳答案 一下三种方法都可以。把c语言复制按钮下c动作里( 1) …

    SIMATIC WinCC 2019年6月11日