打开多个EXCEL报表

打开一个报表传输数据我已经编写实验完毕,如果打开了两个或者两个以上的报表怎么办呢?打开EXCEL报表为人工的,怎么将不同变量传输到指定的报表中呢?请教!!!
我的程序如下:
On Error Resume Next 
 Dim objExcelAPP,xlbook,xlsname,isOpen
 xlsname="D:\shengchanjilu\R2012\R2012-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:\shengchanjilu\R2012\R2012-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

提问者对于答案的评价:
谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午2:17
下一篇 2019年6月11日 上午2:17

相关推荐

  • wincc7.3项目运行时怎么修改用户密码?

    wincc7.3项目运行中修改当前用户密码,输入旧密码,输入新密码,确认按钮。用脚本怎么实现?从网上找的看起来挺复杂。也没试成功 问题补充:客户要求可以更改密码,我见其他的软件也可…

    SIMATIC WinCC 2017年6月10日
  • WINCC MSCOMM发送HEX数组

    我现在在做一个自由口通讯的仪表通讯,通讯协议自定义,发送和接收帧均为HEX格式的数据,可MSCOMM控件的output属性好像只能发送字符串,而且是ASCII码,请问怎样实现该功能…

    SIMATIC WinCC 2021年7月5日
  • 请问WINCC的变量归档

    请问WINCC的变量归档的保存地址在哪里,可不可以自己设址地址呢,输出的是不是EXCEL格式的 最佳答案 在ArchiveManager文件夹下,不可设的,不是EXCEL格式,是压…

    SIMATIC WinCC 2019年6月11日
  • ab的L5000工控机可否用wincc做上位机,如果可以,应该怎么做?

    ab的L5000工控机可否用wincc做上位机,如果可以,应该怎么做? 最佳答案 我想应该是有PCI插槽!看你是用什么方式通讯,如果你用MPI或DP的通讯的话,就要买一装CP561…

    SIMATIC WinCC 2019年6月11日
  • WinCC无法加载通讯协议

    我是Wincc Runtime V7.0+SP3 ASIA 的用户,想通过AS-OS engineering从Step7倒入变量,…

    SIMATIC WinCC 2017年11月16日
  • wincc 快速归档和慢速归档

    我用的是winccV6.2,在变量记录中存了100个变量,全部是事件驱动的,用变量来触发归档。事件驱动的话,应该全部都存在快速归档。快速归档的归档内容设置按默认设置。但电脑上快速归…

    SIMATIC WinCC 2019年6月10日
  • WINCC的几个问题

    1:冗余服务器OSM和OSS,在工程师站上打开OSM项目,把图形树里的层级全部删了,然后重建,然后CHANGES编译,完全下载后(两个服务器分别下载),服务器里WINCC上面的层级…

    SIMATIC WinCC 2017年12月9日
  • WinCC flexible SMART V3编译时报警内部错误

    内部错误(详情:路径中具有非法字符) 问题补充:更改项目保存路径为纯英文后还是出现这个错误 最佳答案 新建项目尝试。如果还是出现上述错误,建议检查软件安装情况。smart&nbsp…

    SIMATIC WinCC 2021年7月5日
  • wincc MSFLEXGRID 标题行背景颜色与滚动条咨询

    采用MSFLEXGRID 控件制作报表,但其标题行背景颜色一直更改不了,以及数据滚动条如何实现。背景颜色已使用了BackColorFixed属性设置,滚动条已使用Scro…

    2021年7月5日
  • 寻求wincc控制三盏灯顺序亮灭的技术问题

    本意是用两个开关顺序控制三盏灯亮灭,这个脚本程序应该是在哪编辑啊,我在c脚本编辑了一个新动作将程序写在了里面,之后又在建立按钮时又将脚本程序分别编在了按钮的c动作上,最后测试不能实…

    2021年7月5日