发布于 2011-07-05 15:34:17
15楼
我用VBS做的,表和楼上一样,第二行开始,写在修改按钮的VBS事件里
On Error Resume Next '此句必须有,防止无EXCEL进程时GetObject出错退出
Dim xlsname,xlapp,xlbook,xlsheet,isOpen,i,TagName,TagValue
xlsname="F:\123.xls" 'Excel文档路径
Set xlapp=GetObject(,"Excel.Application") '获取当前运行的Excel应用程序对象
If Typename(xlapp)="Application" Then 'Excel已打开,遍历工作薄查找对应文
档是否已打开
For Each xlbook In xlapp.Workbooks
If xlbook.FullName=xlsname Then
isOpen=True
Exit for
End if
Next
If Not isOpen Then '如果对应文档没打开则打开
Set xlbook=xlapp.Workbooks.Open(xlsname)
End if
Else '当前没有打开Excel程序则创建Excel应用程序并打开对应的文档
Set xlapp=CreateObject("Excel.Application")
Set xlbook=xlapp.Workbooks.Open(xlsname)
End if
Set xlsheet=xlbook.WorkSheets("Sheet1") '数据存放与表Sheet1,第一列为变量名,
第二列为变量值
For i = 2 To xlsheet.Range("A65536").End(3).Row '从第二行一直循环到最后一行
TagName=xlsheet.Cells(i,1).Value
TagValue=xlsheet.Cells(i,2).Value
' Msgbox TagName & vbcrlf & TagValue '测试显示第一列、第二列数据
HMIRuntime.Tags(TagName).Write TagValue '写入WinCC变量
Next
xlbook.Close 0 '关闭不保存文档
xlapp.Quit '退出Excel应用程序
Set xlsheet=Nothing
Set xlbook=Nothing
Set xlapp=Nothing