Office中国论坛/Access中国论坛

标题: 请求解决不能多次输出数据到EXCEL的问题 [打印本页]

作者: tomasyoo    时间: 2010-7-14 11:50
标题: 请求解决不能多次输出数据到EXCEL的问题
我这里使用的是ACCESS 2007。

问题点:
1.复制一个EXCEL文件。
2.打开该文件,复制3个SHEET。
第一次完全成功

3.将打开的EXCEL文件关闭
4.再次重复步骤1的过程,就会出错,必须退出ACCESS,
  而且,任务管理器中有时会出现一个未关闭的EXCEL进程,
  必须将该进程关闭,重新启动ACCESS文件,才能正常运行。

求解决方法,能够解决的可以协商价格,必不食言。
作者: tmtony    时间: 2010-7-14 13:53
能否转成2003版本,新电脑没有安装2007版
作者: tomasyoo    时间: 2010-7-15 19:18
这个附件包含ACCESS2003和ACCESS2007两个版本,请大家多帮忙了!

作者: tomasyoo    时间: 2010-7-17 01:38
估计这个问题是由Office本身的缺陷造成的。也就是说在一个EXCEL内用COPY命令反复拷贝SHEET,就会出现工作表驻留内存不能正常释放的问题。
如果用workbooks.add()就不会有这个问题,不过这样增加的是一个空的SHEET,如果是要拷贝模版,只能打开一个workbooks,让后将某个SHEET反复拷贝到另一个WORKBOOK中去,这样不会有问题。
Dim ExcelApp As Excel.Application
Dim wbSourceBook, wbTargetBook As Workbook
Dim wsSource, wsTarget As Worksheet
Dim xlsPath As String
   
xlsPath = CurrentProject.Path + "\TEST.xls"

Set ExcelApp = New Excel.Application
Set wbSourceBook = ExcelApp.Workbooks.Open(xlsPath)
Set wbTargetBook = ExcelApp.Workbooks.Add()

ExcelApp.Visible = True

'Application.SheetsInNewWorkbook = 1
'Application.ScreenUpdating = False
Set wsSource = wbSourceBook.Sheets("sheet1")


Dim i
For i = 1 To 3

wsSource.Copy After:=wbTargetBook.Sheets(wbTargetBook.Sheets.Count)
Set wsTarget = wbTargetBook.Sheets(wbTargetBook.Sheets.Count)


Next

wbTargetBook.Sheets("sheet1").Delete
wbTargetBook.Sheets("sheet2").Delete
wbTargetBook.Sheets("sheet3").Delete

'wb.Save
wbSourceBook.Close

Set wsSource = Nothing
Set wbSourceBook = Nothing
Set ExcelApp = Nothing





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3