2014-06-19 59 views
0

我目前正致力于自动编写我公司通常手动执行的Excel文档。基本上我在做什么来概述如下:如何在保存更改后使用LotusScript删除Excel文件?

从文档中获取文件 - 这是一个嵌入式富文本项目 - ExtractFile()'到本地光盘,根据需要编辑它,使用SaveAs保存更新到相同的目录中。用MIME发送文件。所有这些工作正常 - 这是我的问题所在:

我剩下两个文件坐在指定的目录。我需要代理做的最后一件事是删除这些文件。我最初尝试使用Kill命令,然后是指定的目录。这给了我一个OLE自动化对象错误;由于这个原因,我走了,并寻找新的方法来尝试删除一个文件,看看它是否也会给我错误。所以我尝试了以下内容:

Call createObject("scripting.filesystemobject").deletefile(filePath, True) 

这也给了我同样的错误。我也尝试了其他一些东西。如:

  • 在两个excel文件中调用xlApp.Quit()方法,没有运气。
  • 调用在Sleep(3)ReleaseComObject()
  • 投掷,看它是否能帮助我 - 发现这个在其他论坛

如果您有任何想法,试图尝试得到这个没有错误的工作,会非常有帮助。

回答

0

不使用Workbook.SaveAs方法,而是使用Workbook.Close方法来保存更改。调用此方法后,该文件将关闭,并可轻松删除。要删除文件,请使用标准LotusScript Kill语句。
这里是例子:

'Get the document here 

Set rtItem = doc.GetFirstItem(excelFileItem$) 
Set obj = rtItem.EmbeddedObjects(0) 

tempDir$ = Environ("Temp") & "\" 

'These file names is just for example. Use your owns. 
fileName$ = tempDir$ & obj.Source 
saveAsFileName$ = tempDir$ & "New " & obj.Source 

Call obj.ExtractFile(fileName$) 

Set xlApp = CreateObject("Excel.Application") 
Set xlBook = xlApp.Workbooks.Open(FileName$) 

'Update excel here. 

xlBook.Close True, saveAsFileName$, False'Save the file where you need to. 
xlApp.Quit 

'Send mail here. 

Kill fileName$ 
Kill saveAsFileName$ 

如果只发送一个文件,并删除这两个文件,那么就没有必要将更改保存到另一个文件。您可以将更改保存到同一个文件。

相关问题