wincc v7.3 做报表,MSFlexGrid控件导出到Excel,一闪就没了,也没生成Excel文件,各位大神帮我看一看。同样的脚本代码,在XP系统,wincc v7.0 office2003就可以用,现在我的wincc 版本v7.3,不管是把EXCEL装成2010 或者是2003,都不能生成报表,我的电脑系统为win7 64位旗舰版。脚本如下
Sub OnClick(ByVal Item)
Dim m,i,j,n
Dim objExcelApp,objExcelBook,objExcelSheet
'打开Excel模板
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
objExcelApp.Workbooks.Open "D:\report1\report.xls"
objExcelApp.Worksheets("sheet1").Activate
'打开Excel模板
Dim olist
Set olist=ScreenItems("view1")
m=olist.Cols
i=olist.Rows
For j = 1 To m
For n = 1 To i
objExcelApp.Worksheets("Sheet1").cells(n,j).value= olist.TextMatrix (n-1,j-1)
Next
Next
Dim patch,filename
filename=CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now))&CStr(Hour(Now))+CStr(Minute(Now))&CStr(Second(Now))
patch= "D:\report1\report\"&filename&".xls"
objExcelApp.ActiveWorkbook.SaveAs patch
' objExcelApp.Workbooks.Close
' objExcelApp.Quit
Set objExcelApp= Nothing
' MsgBox "成功生成数据文件!"
item.Enabled = True
End Sub
问题补充:
我这段脚本是按照当前日期时间生成一个Excel文件,保存在"D:\report1\report文件夹下
图片说明:
最佳答案
"D:\report1\report.xls"
这个文件有没有
然后msgbox m i一下看看有数没
补充:
嗯我能看明白,但是是先要打开一个模板的
就是上面那个表格,如果没有的话,肯定是空白的
你看看D:\report1\report.xls这个文件有没有,没有的话,你就新建一个,文件名和扩展名必须一样
提问者对于答案的评价:
恩 目前 问题解决了,真的是模板的问题非常感谢。大神还有一个问题想问您一下,为什么导出到EXCEL 2003里面可以,但是导出到excel2010就不可以了,导出的数据在EXCEL2010表格内是空的,难道导出到EXCEL2010与EXCEL2003的脚本还有不同吗?
最佳答案作者回复:
基本上算没用过office2010软件,感觉反应很慢,个人使用2003就够了,所以一直在用2003....
而且2010好像激活挺麻烦,不好用就不用了么,可以换2013或者2016试试啊
还有2007以后表格文件默认的扩展名是xlsx的
记得在2013还是哪个版本测试过没问题的
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc163249.html