ASP Excel.Application objExcel.Range(“range”)冻结

时间:2010-12-08 14:02:21

标签: excel asp-classic vbscript

每当我使用此代码时,

Set oExcel = CreateObject("Excel.Application")
Set oWorkbook = oExcel.Workbooks.Open(sPathToTemplate)

oExcel.Range("shipping_name").Value = strShippingName

oWorkbook.Close()
Set oWorkbook = Nothing
Set oExcel = Nothing

服务器上的Excel进程正在冻结,并且单元格永远不会被更改。或者至少看起来就是这样。

工作簿打开就好了,如果我不尝试更改任何单元格内容,代码就会完成而不会出错。但是当我重新添加更改并刷新页面时,EXCEL.exe进程出现在任务管理器中,脚本停止响应。我必须手动终止该过程以使其超时。

我能做些什么来让代码正常工作?

1 个答案:

答案 0 :(得分:1)

这可能是因为您没有保存工作簿。在桌面上,这将导致Excel生成“您要保存更改吗?”对话框。

尝试添加

oWorkbook.saved = true

关闭工作簿之前。这将告诉Excel不关心工作簿是否已更改(但不会保存文档)。如果你的asp工作,那么它就是导致问题的保存对话框。要实际保存更改,您需要调用其中一个

oWorkbook.Save
oWorkbook.SaveAs

方法