保存excel文件,在本机上都能调试通过,相同的代码在别的机子上就不能通过!!
保存excel文件,在本机上都能调试通过,相同的代码在别的机子上就不能通过!!每次都是在 ObjExcel.Save SavePath报错,说类的方法不正确
具体代码如下,请高手能指点下,郁闷死了:Q
set ObjExcel=GetObject("","excel.Application")
Set fso=CreateObject("scripting.FileSystemObject")
ObjExcel.Visible=false
SavePath="E:\test.xls"
'导出的历史数据存储路径
If fso.FileExists(SavePath)=True Then
fso.DeleteFile(SavePath)
end if
ObjExcel.Save SavePath
ObjExcel.quit
Set fso=nothing
Set ObjExcel=nothing 路径问题?或者是E:\test.xls已经存在了?
office版本不同? 我上面的代码中有对文件是否存在的处理,如果存在就先删除,所以也不是路径和文件的问题
还有一个情况是这样:我把这代码段放到我软件脚本中去运行,也是报错,软件运行的环境都没有变(还是我自己的机子)
所以这个也不是office的版本不同的问题
哎,现在头都大了,被这个问题卡了两天了:dizzy: 本帖最后由 lyscser 于 2011-5-27 15:00 编辑
在本机可能是删除失败了才导致运行成功的,Save是覆盖保存,应该是应用于保存已经打开文件的修改,新存是SaveAs的吧
具体函数参见下面这个(截取一个函数的一部分,注意注释):
Set fObject = CreateObject("Scripting.FileSystemObject")
If Not fObject.FileExists(appointedFile) Then
Repor micFail,"参数文件不存在:",appointedFile
Set fObject = Nothing
End If
If fObject.FileExists(tmpName) Then
fObject.DeleteFile(tmpName)
End If
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Application.Visible = False
ExcelApp.DisplayAlerts = False
Set newBook = ExcelApp.Workbooks.Open (appointedFile,False,True)--只读模式
newBook.Worksheets(appointedSheet).Copy
Set tempBook = ExcelApp.ActiveWorkbook
tempBook.SaveAs tmpName,1--保存成xls格式
Set tempBook = Nothing
ExcelApp.Quit
Set ExcelApp = Nothing
DataTable.AddSheet newSheet
DataTable.ImportSheet tmpName,appointedSheet,newSheet
If fObject.FileExists(tmpName) Then
fObject.DeleteFile(tmpName)
End If 但是使用ObjExcel.SaveAs SavePath系统提示
ObjExcel这个对象不支持这样的方法 而且我有几次调试的时候,这个路径下文件是空的,使用save也是能保存文件的
所以我想应该不是你说的那个问题 tempBook.SaveAs tmpName,1--保存成xls格式 还是不行,我怀疑,应该上我上面的那段代码在我软件运行过程中没有真正得到那个excel的对象,所以在对该对象进行操作的时候就会出错。
但是为什么单独就这块代码段就可以运行通过,而且也是能正确执行相关操作呢
非常的崩溃:'( {:4_93:}自己顶一下,高手帮忙啊 :'(:'(
有高手出手相救没 本帖最后由 ljj149850508 于 2011-6-7 17:55 编辑
你的EXCLE进程没有关闭。。
fso.close()
创建了文件流,不去关闭。。该进程一直存在。。导致报错。。 set ObjExcel=GetObject("","excel.Application")
修改为 createobject()
因为这存在一个你本机打开了excel进程的问题,而其他机子没有打开此进程。
猜测啊 可以实验下
页:
[1]