技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 打开多个EXCEL报表

打开多个EXCEL报表

刘玉蓉 发布于2014-08-13 11:48 9 0 标签:

打开一个报表传输数据我已经编写实验完毕,如果打开了两个或者两个以上的报表怎么办呢?打开EXCEL报表为人工的,怎么将不同变量传输到指定的报表中呢?!
程序如下:
On Error Resume Next 
 Dim objExcelAPP,xlbook,xlsname,isOpen
 xlsname="D:shengchanjiluR2012R2012-baobiao.xls"                    
   Set objExcelAPP=GetObject(,"Excel.Application")    objExcelAPP.Visible=True
 
 If Typename(objExcelAPP)="Application" Then     
    For Each xlbook In objExcelAPP.Workbooks
        If xlbook.FullName=xlsname Then
           isOpen=True
           Exit for
        End if
    Next
 End If
 
If isOpen=1 Then

objExcelAPP.Cells(14,8).Value = Time

Else
End If

佳答案

实际上每个打开的Excel都是一个单独的进程,会有一个专属的对象名字。
 可以通过变量 xlsname="D:shengchanjiluR2012R2012-baobiao.xls"指定不同的名字的表进行读写。
程序已经有判断表格是否打开的代码,可以用if或select case 进行判断,指定向不同的表写不同的变量。

下面的是一段两个打开的excel交互的简单实验,可以参考一下。
这里用了两个Excel.Application对象,比较简单直观的办法,如果不能确定是几个表进行交互,可以用一个对象,用分支赋值之后再做。

Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)                         

Dim objExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = 1
objExcelApp.Workbooks.Open "D:1.xls"

Dim objExcelApp1
Set objExcelApp1 = CreateObject("Excel.Application")
objExcelApp1.Visible = 1
objExcelApp1.Workbooks.Open "D:2.xls"

MsgBox "两个进程都准备好!"
Dim rowNum
Dim rangeNum
rowNum = 9
rangeNum = 9
MsgBox "两个进程都准备好!"

Dim i
Dim j
For i = 1 To rowNum 
     For j = 1 To rangeNum
  objExcelApp1.Cells(i,j).Value = objExcelApp.Cells(i,j).Value
     Next
Next

    
MsgBox "读写完了!"
objExcelApp.Workbooks(1).Save ""保存工作表
objExcelApp.Workbooks(1).Close ""关闭工作表
objExcelApp.Quit  "" 退出

objExcelApp1.Workbooks(1).Save ""保存工作表
objExcelApp1.Workbooks(1).Close ""关闭工作表
objExcelApp1.Quit  "" 退出
End Sub

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签