关于用VBS和EXCEL做实时报表数据问题,当程序运行到打开设置好的Excel表格后,就自动停止

Option Explicit
Function action
''定义变量             
Dim objExcelApp, objExcelbook,conn
Dim tag1,wendu''这个在内部变量里建立,是行数变量,初始值设定为4
Set tag1=HMIRuntime.Tags("tag1")
tag1.Read


''创建对象
 Set objExcelApp=CreateObject("Excel.Application") 
 objExcelApp.visible=True
 objExcelApp.workbooks.open"D:\1.xls"   ''这个路径里的文件名字用英文的,不要用中文的


''连接数据库
Set conn = CreateObject("ADODB.Connection")
    conn.ConnectionString = "Provider=WinCCOLEDBProvider.1;Catalog=CC_ww_12_06_11_10_48_01R;Data Source=KX\WinCC"
    conn.CursorLocation = 3
    conn.Open

''实时数据写入
 
objExcelApp.Worksheets.cells(1,9).value=Day(Now)
wendu.read
objExcelApp.cells(tag1,1).value=HMIRuntime.Tags("wendu").Read
tag1.Value=tag1.Read+1

If tag1.Value>27 Then
tag1.Write4

''另存为
objExcelApp.activeworkbook.saveAs "D :/CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now))"
objExcelApp.Quit
Set objExcelApp=Nothing

Else
''直接保存
objExcelApp.ActiveWorkbook.Save
objExcelApp.Quit
Set objExcelApp=Nothing
End If
End Function
Excel表格里一点反应都没有,希望大师帮我看看问题出现在哪里。还有连接的是内部变量,在线表格控件里实时数据显示是0 u,这0  u 是什么意思。

最佳答案

1、你的内部变量和外部变量名字一样都是tag1,
2、没有读取的变量的起始和结束时间。

Dim fso,myfile
Set fso=CreateObject("scripting.filesystemobject")
Set myfile=fso.GetFile("d:\\data_compare.xlsx")
Dim objexcelapp
Set objexcelapp=CreateObject("excel.application")
''objexcelapp.visible=true
objexcelapp.workbooks.open myfile
''以上是为了打开D盘excel文件 
''创建到数据库的链接
    spro = "Provider=WinCCOLEDBProvider.1;"
 sdsn = "Catalog=CC_upzjg_11_12_15_14_45_14R;"
 sser = "Data Source=.\WinCC"
 scon = spro + sdsn + sser
 ssql = "Tag:R,(''test\testdata''),''2011-12-15 7:27:00'',''2011-12-15 8:27:00''"
   MsgBox "open with:" &vbCr & scon &vbCr &ssql &vbCr
  Set conn = CreateObject("ADODB.Connection")
      conn.ConnectionString = scon
         conn.CursorLocation = 3
      conn.Open
        Set ors = CreateObject("ADODB.Recordset")
     Set ocom = CreateObject("ADODB.Command")
            ocom.CommandType = 1
        Set ocom.ActiveConnection = conn
      ocom.CommandText = ssql        
        Set ors=ocm.Execute 
''下面读写数据

提问者对于答案的评价:
按照您给的参考,我重新把脚本整理了一遍,可是数据还是没有写入到Excel表格中,对于变量归档的数据存储在哪个数据库里。麻烦大侠指点下

最佳答案作者回复:
你看看你的变量记录的组态,ssql = "Tag:R,(''''test\testdata''''),''''2011-12-15 7:27:00'''',''''2011-12-15 8:27:00''''",这个表示的是组态中的test组下的testdata变量。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月10日 下午8:48
下一篇 2019年6月10日 下午8:48

相关推荐