excel报表不写数据,谢谢!

目的:想在每天的14:50:00清除数据(先提前打开报表,清除一下数据),然后在15:00,16:00,17:00分别往表格里写数据(触发周期为:30分钟)。当在17:00写完数据后,以当天的日期为名称另存一份。运行后并不往表格里写数据,请帮忙分析一下程序,谢谢!
Option Explicit
Function action
Dim objExcelApp,objExcelBook,objExcelSheet 


On Error Resume Next 
Dim ExcelApp,ExcelBook 
Set ExcelApp=GetObject(,"Excel.Application") 
If TypeName(ExcelApp)="Application" Then 
 For Each ExcelBook In ExcelApp.WorkBooks 
  If ExcelBook.FullName="E:\temp\ee\biao.xls" Then 
    ExcelApp.ActiveWorkbook.Save 
    ExcelApp.Workbooks.Close 
    ExcelApp.Quit 
    Set ExcelApp=Nothing
    Exit For 
  End If 
 Next 
End If 

Set objExcelApp=CreateObject("Excel.Application") 
If Hour(Now)=14 And Minute(Now)=50 And Second(Now)=0 Then
 objExcelApp.Visible=True 
 objExcelApp.Workbooks.Open"E:\temp\ee\biao.xls" 
 objExcelApp.Cells(5,1).Value=Null 
 objExcelApp.Cells(5,2).Value=Null 
 objExcelApp.Cells(5,3).Value=Null 
 objExcelApp.Cells(6,1).Value=Null 
 objExcelApp.Cells(6,2).Value=Null 
 objExcelApp.Cells(6,3).Value=Null 
 objExcelApp.Cells(7,1).Value=Null 
 objExcelApp.Cells(7,2).Value=Null 
 objExcelApp.Cells(7,3).Value=Null 
 objExcelApp.Workbooks.Close 
 objExcelApp.Quit 
 Set objExcelApp=Nothing 
End If

If Hour(Now)=15 And Minute(Now)=0 And Second(Now)=0 Then
    objExcelApp.Visible=True 
    objExcelApp.Workbooks.Open"E:\temp\ee\biao.xls" 
    objExcelApp.Cells(5,1).Value = Now
    objExcelApp.Cells(5,2).Value=HMIRuntime.Tags("aa2").read
    objExcelApp.Cells(5,3).value=HMIRuntime.Tags("aa3").read 
    objExcelApp.ActiveWorkbook.Save 
    objExcelApp.Workbooks.Close 
    objExcelApp.Quit 
    Set objExcelApp=Nothing  
   'MsgBox "10"
  Else If Hour(Now)=16 And Minute(Now)=00 And Second(Now)=0 Then
    objExcelApp.Visible=True 
    objExcelApp.Workbooks.Open"E:\temp\ee\biao.xls"   
    objExcelApp.Cells(6,1).Value = Now 
    objExcelApp.Cells(6,2).Value=HMIRuntime.Tags("aa2").read
    objExcelApp.Cells(6,3).value=HMIRuntime.Tags("aa3").read 
    objExcelApp.ActiveWorkbook.Save 
    objExcelApp.Workbooks.Close 
    objExcelApp.Quit 
    Set objExcelApp=Nothing  

   ' MsgBox "11"   

   Else If Hour(Now)=17 And Minute(Now)=00 And Second(Now)=0 Then

    Dim patch,filename 
    filename=CStr(Month(Now))&CStr(Day(Now))+CStr(Hour(Now))&CStr(Minute(Now)) 
    patch="E:\temp\ee\"&filename&".xls" 
    objExcelApp.Visible=True 
    objExcelApp.Workbooks.Open"E:\temp\ee\biao.xls" 
    objExcelApp.Cells(7,1).Value = Now 
    objExcelApp.Cells(7,2).Value=HMIRuntime.Tags("aa2").read
    objExcelApp.Cells(7,3).value=HMIRuntime.Tags("aa3").read  
    objExcelApp.ActiveWorkbook.SaveAs patch
    objExcelApp.Workbooks.Close 
    objExcelApp.Quit 
    Set objExcelApp=Nothing 

    Else MsgBox "aa"

   End If
  End If 

End If 
End Function

最佳答案

如果你触发器设置30分钟触发一次,意味着打开项目之后,每隔30分钟运行一次这段脚本。
你通过什么保证触发它的时刻正赶上14:50  15:00,16:00,17:00呢?
如果赶不上,那你这段脚本的if里的语句一个也没执行,那怎么会有数呢?

建议你把if里执行的语句写成按钮的vbs脚本,点击按钮测试可以实现写数据的功能,再放回来。
触发器应是三个,就是每天这三个时间。
点击全局脚本编辑器的界面上边触发器的图标,触发器->定时器->周期性 点添加, 然后事件不选标准周期,选下拉列表里的每日的,下边填好时间即可。
用同样方法把每天的这三个时刻都设为触发器,就可以实现你的功能。

提问者对于答案的评价:
谢谢,我再试试.

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

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

相关推荐

  • wincc flexible反向传送

    如何从操作面板用wincc flexible反向传送到PC的具体步骤及存储卡型号? 问题补充:如果设备现有的操作屏,在最初做项目时没有选择启用回传,还有其他的方法能够获得…

    SIMATIC WinCC 2021年7月5日
  • Windows API 函数说明

    请问谁有wincc的C脚本中所有Windows API函数的手册。     手册包括函数所在的.dll文件,函数的功能和…

    SIMATIC WinCC 2019年6月11日
  • msflexgrid控件如何删除记录

    在wincc画面中引用的msflexgrid控件如何删除选中的记录,选中记录时,有什么没有什么标志用来编写程序 最佳答案 先获取当前选中的行数和列数。然后在里边写入空值。 提问者对…

    SIMATIC WinCC 2017年7月30日
  • MP277 KEY仿真时的问题

    屏尚未到货,目前只能仿真,以下问题是在仿真时出现的。1.  数字键按下没反应,数字键跟其他键的显示也不一样,其他键是立体效果显示,数字键是平面显示。 …

    SIMATIC WinCC 2019年6月11日
  • 两台WINCC的OPC通信

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

    SIMATIC WinCC 2019年6月11日
  • wincc用报警器做的报警闪光灯为什么报警时不闪呢

    wincc用报警器做的报警闪光灯为什么报警时不闪呢wincc用报警器做的报警闪光灯为什么报警时不闪呢wincc用报警器做的报警闪光灯为什么报警时不闪呢 最佳答案 请根据图检查你的设…

    2021年7月5日
  • wincc ,如图要写两个布尔量的“或”来控制显示属性,语句是怎么写的?

    wincc ,如图,要写两个布尔量的“或”来控制显示属性,语句是怎么写的? 图片说明:    最佳答案 逻辑或用 ||,逻辑与用&&,详细见…

    2017年6月9日
  • WINCC与S7-300PLC的以太网通讯

    请问:一个项目要求一个S7-300PLC通过以太网模块连接到交换机上,然后把数据送到两个上位机上,上位机也是通过网线和交换机相连,请问网线怎么做?其中一台上位机做操作员站,另一台做…

    SIMATIC WinCC 2019年6月11日
  • wincc如何实现查询多个归档变量的数据

    我想用listview控件实现两个归档变量的数据查询,但是总是做不出来,希望各位高手给提点建议!Dim sProDim sDsnDim sSerDim…

    SIMATIC WinCC 2018年12月3日
  • wincc系统应如何维护?

    我使用的是wincc6.2软件,运行了10个月,最近发现系统启动或停止需要花费大量的时间,检查CPU的状态发现处于满负荷状态。我现在应怎么办?另外,我在界面中使用了”在线报表控件“…

    SIMATIC WinCC 2017年12月9日