通過VBS腳本將wincc數(shù)據(jù)導(dǎo)出至excel
劉玉蓉
發(fā)布于2014-12-11 17:12
7
0
標(biāo)簽:
目的:每單擊一次鼠標(biāo)左鍵,將一個(gè)wincc內(nèi)部變量"tag1"寫入excel表格中。次單擊鼠標(biāo),數(shù)據(jù)存進(jìn)表格的行,其中列為單擊鼠標(biāo)的時(shí)間,第二列為當(dāng)前"tag1"的數(shù)值;第二次單擊鼠標(biāo)時(shí),數(shù)據(jù)存進(jìn)第二行。。。依此類推, 代碼如下:但問題是功能始終實(shí)現(xiàn)不了,請(qǐng)看看這段代碼問題出在哪里了!
Sub OnLButtonDown(Byval Item, Byval Flags, Byval x, Byvaly)
Dim value,k
Set value = HMIRuntime.Tags("i") // 變量“i”是內(nèi)部變量無(wú)符號(hào)32數(shù),
k = value.Read // 記錄鼠標(biāo)單機(jī)的次數(shù)
Dim fname
fname="D:
eport3.xlsx"
Dim ObjExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Workbooks.Open fname
objExcelApp.worksheets ("sheet1").Cells(k, 2).Value = HMIRuntime.Tags("tag1").read
objExcelApp.worksheets ("sheet1").Cells(k, 1).Value = Now
k = k + 1
HMIRuntime.Tags ("i").Write k
objExcelApp.ActiveWorkbook.Save
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set ObjExcelApp = Nothing
End Sub
問題補(bǔ)充:
這種方法還是可以的,問題出在 i 的初始值上了,從行開始記錄 初始值需要設(shè)定為1
佳答案
你的方法有問題,試試用 還有你的定義不要用value。這是屬性詞
Set tag = HMIRuntime.Tags("i")
With objExcelApp.worksheets(sheetname)
.cells(t,1).value=NOW
tag.read
.cells(t,2).value=tag.value
End With
Next