如何通过LotusScript代理保存csv文件

时间:2018-10-04 06:23:21

标签: lotus-notes lotus-domino lotusscript

我有一个Lotusscript代理,需要将excel工作表(csv文件)中一个单元格的内容移动到另一个单元格。以下是一段代码:

Dim xlApp As Variant, xlwb As Variant, xlsheet As Variant
Set xlApp = CreateObject ( "Excel.Application" )
Set xlwb = xlApp.Workbooks.Open(StrFilePath) 'strFilePath is the path to csv file
Set xlsheet = xlwb.Worksheets(1)
'Logic to check necessary cells in the excel sheet goes here...
'Following two lines move the contents from (p,1) to (1,n)
xlsheet.cells(1,n).value = xlsheet.cells(p,1).value
xlsheet.cells(p,1).value = ""

现在,当我在移动内容后尝试保存此csv文件时,会出现问题。 我已使用以下行保存文件:

xlwb.SaveAs(StrFilePath)

此方法不返回任何错误。但是文件没有保存。

然后,我还尝试使用下面的行保存文件:

xlApp.activeworkbook.SaveAs(StrFilePath)

此方法返回“自动化对象错误”。

这两种方法均未保存文件。此时,代理无法进一步执行。

然后,代理需要使用StrFilePath语句将此文件从路径FileCopy移动到另一个目录。此时,代理会引发“权限被拒绝”错误。

该文件位于服务器D盘驱动器中的目录中。 该代理还被授予“允许具有完全管理权限的受限操作”。

有人可以让我知道保存此csv文件的正确方法是什么,以及如何为保存该文件提供必要的权限吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

好的,所以我在更深入地挖掘,找到了解决方案。

下面的代码行对我有用,文件成功保存。

xlApp.ActiveWorkBook.save

然后我只是添加了以下几行来进行清理...(这不是我的问题的一部分,而是为了完成而在此处编写)

xlApp.ActiveWorkBook.close 
xlApp.quit
Set xlApp = Nothing

但是我不确定为什么SaveAs不起作用。如果我找到答案,将发布。