打开一个报表传输数据我已经编写实验完毕,如果打开了两个或者两个以上的报表怎么办呢?打开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