对VB脚本不熟悉,想做报表就找了个模版改了改,在VB上用点击事件可以实现,但用到WINCC的全局脚本中,用10s定时进行触发,可是运行后没反应(全局脚本运行已勾选)。脚本如下:
strDateTime = Format(Now(), "yyyy-MM-dd hh:mm:ss")
strDate = Left(strDateTime, 10)
strHour = Right(Left(strDateTime, 13), 2) & " :00"
strminute = Right(Left(strDateTime, 16), 2)
iRow = Right(Left(strDateTime, 16), 2)
Set fs = CreateObject("Scripting.FileSystemObject")
IsCreate = fs.FileExists("C:\cyz\dayreport" & strDate & ".xls")
Set fs = Nothing
If IsCreate Then
strTemplateName = ("C:\cyz\dayreport" & strDate & ".xls")
Else
strTemplateName = "C:\cyz\moban\daymoban.xlt"
End If
Set m*cel = CreateObject("Excel.Application")
With m*cel
.Visible = False
.Workbooks.Open strTemplateName, , False
.ActiveWorkbook.ActiveSheet.Select
.DisplayAlerts = False
.Wait (Now() + 0.00002)
End With
m*cel.Worksheets(1).Cells(iRow + 2, 2).Value = strDate
m*cel.Worksheets(1).Cells(iRow + 2, 3).Value = strHour
m*cel.Worksheets(1).Cells(iRow + 2, 9).Value = ("AI6")
m*cel.Worksheets(1).Cells(iRow + 2, 10).Value = ("AI7")
m*cel.Worksheets(1).Cells(iRow + 2, 11).Value = ("AI8")
m*cel.Worksheets(1).Cells(iRow + 2, 12).Value = ("AI9")
m*cel.ActiveWorkbook.SaveAs ("C:\cyz\dayreport" & strDate & ".xls")
m*cel.Quit
m*cel.DisplayAlerts = True
Set m*cel = Nothing
请详细赐教,究竟是哪里出了问题,不胜感激!
问题补充:
因为是在做测试,所以想10s触发一次,写数就是随便写的行数,主要问题是不进行创建EXCEL表。
最佳答案
VBS脚本,如果执行出错后续的指令不会被执行
VBS里没有Format函数,所有出错,VBS里有一个格式化日期时间的函数FormatDateTime,可把第一行换成
strDateTime=FormatDateTime(Now(), 0)
在控制面板里区域与语言选项修改时间日期的格式即可
提问者对于答案的评价:
谢谢哦。确实是这有问题,我是从IFIX移植过来的,居然碰到这问题。前面回答的哥们纯属扯淡,害我还琢磨好一会。谢谢,给分了。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc245814.html