回复:常驻内存的EXCEL文件读写

RENHQ

版主 西门子1847工业学习平台

  • 帖子

    13657
  • 精华

    61
  • 被关注

    2166

论坛等级:至圣

注册时间:2008-12-28

钻石 钻石 如何晋级?

发布于 2017-02-02 08:26:31

24楼

展开查看
以下是引用www95在2017-02-02 07:25:50的发言 >

Sub OnClick(ByVal Item)                                                        

'On Error Resume Next

Dim oExcel

Dim oWorkBook

Dim oSheet

Dim oFso

Dim sSheetName

Dim sPath

Dim sFileName

Dim sNewFileName

Dim sNewPath


Set oFso=CreateObject("Scripting.FileSystemObject")

sPath=HMIRuntime.ActiveProject.Path  

sFileName=sPath & "ywx.xlsm"

sNewFileName=Year(Now)&"-"& Right("0" & Month(Now),2)&"-"& Right("0"&Day(Now),2)

sNewFileName=sNewFileName & " " & Right("0"& Hour(Now),2)&"."& Right("0"&Minute(Now),2)

sNewFileName=sNewFileName & ".xlsm"

sNewPath=sPath & "USERDATA" & sNewFileName

Set oExcel=GetObject(,"Excel.Application") 

If VarType(oExcel) = vbEmpty Then  

Set oExcel=CreateObject("Excel.Application")

  End If

Set oWorkBook = oExcel.workbooks (sNewFileName)  

If VarType(oWorkBook)= vbEmpty Then 

  If oFso.FileExists.FileExists(sNewPath)=True Then  

    Set oWorkBook = oExcel.workbooks.OPen(sNewPath) 

   Else  

   Set oWorkBook = oExcel.workbooks.OPen(sFileName) 

        oWorkBook.saveas.sNewPath  

  End If 

End If

  oExcel.visible=True  

Set oSheet=oWorkBook.Sheets("Sheetl")

HMIRuntime.DataSet.Remove("oExcel")

HMIRuntime.DataSet.Add "oExcel", oExcel  

HMIRuntime.DataSet.Remove("oSheet")

HMIRuntime.DataSet.Add "oSheet", oSheet 

Set oFso = Nothing 


'Sub OnClick(ByVal Item)

'On Error Resume Next 



Set oExcel = HMIRuntime.DataSet.Item ("oExcel").Value  

Set oSheet = HMIRuntime.DataSet.Item ("oSheet").Value 


oSheet.cells(6,4).value=HmiRuntime.tags("alarmmsgtext1").Read  ’此处测试新加

oSheet.cells(3,4).value="4546456"  ’此处测试新加


'For i = 1 To 100 

'If IsEmpty(oSheet.cells(i,1).value) = True Then 

'Exit For  

' End If

'Next

'If i < 100 Then

'oSheet.cells(i,1).value = Now 

'oSheet.cells(i,2).value = iol.OutputValue 

'oSheet.cells(i,3).value = io2.OutputValue

'Else

'MsgBox "I>100"

'End If


'Sub OnClick(Byval Item)

'On Error Resume Next 


Set oExcel = HMIRuntime.DataSet.Item("oExcel").Value 

Set oSheet = HMIRuntime.DataSet.Item("oSheet").Value 

oExcel.DisplayAlerts = False 

oExcel.activeWorkbook.save

oExcel.activeWorkbook.close

oExcel.quit 

Set oSheet = Nothing 

Set oExcel = Nothing 

HMIRuntime.DataSet.Remove("oExcel")

HMIRuntime.DataSet.Remove("oSheet")



End Sub

REN圣你好,按照你三张图片输进同一个脚本后,还是不能够把变量写进外部EXCEL文件中。你看看什么地方有错误?

那个第一行的on error resume next不要注释掉,注释掉的话,如果EXCEL没有打开会出错,然后就不执行了

如果只是在一段脚本里面往EXCEL里面单词写数据的话,没必要用这种形式的了

参考我下面帖子里面的脚本:

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1257592&b_id=5&s_id=17&num=95#anch

1楼 1 和2 的图片


Q群:https://jq.qq.com/?k=9BDuEgf6
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32566条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。