技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > excel报表不写数据.

excel报表不写数据.

刘玉蓉 发布于2014-09-04 17:50 1 0 标签:

目的:想在每天的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: empeeiao.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: empeeiao.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: empeeiao.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: empeeiao.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: empee"&filename&".xls" 
    objExcelApp.Visible=True 
    objExcelApp.Workbooks.Open"E: empeeiao.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脚本,点击按钮测试可以实现写数据的功能,再放回来。
触发器应是三个,就是每天这三个时间。
点击全局脚本编辑器的界面上边触发器的图标,触发器->定时器->周期性 点添加, 然后事件不选标准周期,选下拉列表里的每日的,下边填好时间即可。
用同样方法把每天的这三个时刻都设为触发器,就可以实现你的功能。

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签