打开多个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日
下一篇 2019年6月11日

相关推荐

  • WINCC里的动作

    打开之前的WINCC项目运行后,点击设备(电机)弹不出启动停止画面(不动作)了。本人初学者,请高手赐教!或者指点一下怎样做电机的动作。 最佳答案 1)可能是你的启动停止画面被删除了…

    SIMATIC WinCC 2019年6月11日
  • 触摸屏里面寻址

    各位大侠,请问在触摸屏变量里面的那些地址,有什么快捷方式找到相应页面的地址呢? 问题补充:不好意思,我没说明白,我的意思是说在step7里面有触摸屏的变量,如何快速地在触摸屏里面寻…

    SIMATIC WinCC 2019年6月11日
  • 在WINCC显示硬件组态信息

    在WINCC中,怎样做与和利时系统那样,显示硬件组态信息 最佳答案 wincc没有什么硬件,不像STEP7一样有CPU、接口模块等,不能在wincc上查看硬件状态,如果把所有的都集…

    SIMATIC WinCC 2019年6月11日
  • 关于DB5(自定义)数据块显示的IN、OUT是不可编辑状态

    关于DB5(自定义)数据块显示的IN、OUT是不可编辑状态 但在功能块中FC1中却在使用DB5.DBD28等很多储存器单元内容,我的理解是只要在功能块中使用就需要将用到的…

    SIMATIC WinCC 2019年6月11日
  • C脚本的应用

    我想用C脚本做些动态画面。可是把PLC里读进来的两个实型数(标签本别叫A和B)在C脚本里做些运算,然后在把结果C放到画面上的输入输出域里显示,简单点说。我想做A和B的和SUM=C&…

    SIMATIC WinCC 2019年6月11日
  • wincc 设置

    新手 第一次用wincc 项目有两个315-2DP,一个153,WINCC中三个站都有要监视的变量,并且三个站之间还有数据交换.在项目中应该怎么设??&nbsp…

    SIMATIC WinCC 2019年6月11日
  • wincc在电脑掉电或者重启后无法激活

    我的wincc在电脑突然掉电或者重启电脑后就无法激活,双击桌面的SIMATIC WinCC Explorer图标后提示,上下文不存在。wincc是6.2.通过P…

    SIMATIC WinCC 2019年6月11日
  • 请教高手:如何实现电脑显示触摸屏的动作或者过程

    我是作生产线的,用了西门子300PLC和西门子377触摸屏来控制生产,甲方忽然说要实现办公室监控生产过程,我想问一下各位高手,如何实现触摸屏的工艺流程在电脑屏幕上显示,用什么软件?…

    SIMATIC WinCC 2019年6月11日
  • wincc系统数据归档要把数据存5年怎么设置

    wincc系统数据归档要把数据存5年怎么设置 钻石用户推荐最佳答案 主要一点,就是设置总的时间段以及总的归档大小,比如: 图片说明:    提问者对于答案的评价…

    2021年7月5日
  • 怎么定时启动一个或N个项目函数?

    1、在C脚本里,为什么只有全局动作的属性里可以设置触发器来定时启动全局动作的程序,而项目函数的属性却没有触发器设置呢?2、如果我要系统运行时就自动启动运行一次项目函数A,该怎么做?…

    SIMATIC WinCC 2019年6月11日