打开多个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日

相关推荐

  • wincc6.2打不开项目提示数据库出错

    wincc6.2打开项目时提示数据库上下文出错,项目打不开,怎么解决? 钻石用户推荐最佳答案 1、注意网卡问题(是否故障);2、注意Wincc文件共享(防火墙设置);3、使用开始-…

    SIMATIC WinCC 2021年7月5日
  • wincc打印布局用VBS如何实现?

    wincc打印布局用VBS如何实现? 最佳答案 目前来说VBS还不直接支持打印布局,不过可通过异步调用的方法来实现。见:http://www.ad.siemens.com.cn/s…

    SIMATIC WinCC 2019年6月11日
  • 怎样测试wincc 6.0的profibus-dp 有没有识别cp5611卡

    CP5611主站,3个EM277从站 我用step 7 v5.3 sp +simatic net  …

    SIMATIC WinCC 2019年6月11日
  • 关于人机OS更新

    请问人机有程序时,能不能进行OS 更新,会对人机的程序有影响吗?  最佳答案 可以,但是更新后程序就没了,必须重新下载组态程序. 提问者对于答案的评价:OK

    SIMATIC WinCC 2019年6月11日
  • WINCC数据生成二维码

    现在有个需求,要把wincc的几个数据生成二维码,然后通过打印机打印出来,请问一下wincc生成二维码是怎样实现的?有应用案例吗?之前有同和说可以通过第三方.ocx控件来实现,这个…

    SIMATIC WinCC 2021年7月5日
  • wincc项目移植的注意事项和相关学习资料

    正在运行的wincc项目,需要移植到另外一台工控机上,在移植的过程中需要注意哪些问题?哪里能找到相关的学习资料?求各位大神指教 最佳答案 WinCC如何实现电脑间的项目另存http…

    SIMATIC WinCC 2020年11月1日
  • c脚本打开错误问题

    我有个项目中c脚本项目函数中有些c脚本打开提示打开文档错误,有些就打不开直接c脚本编辑窗口退出了,有些可以打开我在wincc6.2和wincc7.0上都试过一样问题,这个是老外编的…

    SIMATIC WinCC 2020年11月1日
  • Wincc的文本变量转换成其他类型数据

    我在做关于“如何在 WinCC 运行系统中通过串口发送接收数据?”,通过RS232通讯读写取电子称及计量泵的数据,因为有一些连锁保护动作,所以想把逻辑程序在S7…

    SIMATIC WinCC 2019年6月11日
  • WINCC找不到网络路径

    WINCC6.2安装后,在新建项目的时候显示找不到网络路径,不能创建项目 图片说明:       最佳答案 WINCC在创建项目时出现“找不…

    2021年7月5日
  • 急求救:wincc7.3和1510PLC能不能实现高速数据采集?

    我一个模拟量传感器,每秒采集100个数,每次采集5秒,总共500个数,我需要做采集这5秒的实时曲线显示,我用组态王超级XY曲线控件试了一下,按钮触发C脚本发送到控件,简直太慢了! …

    2017年5月31日