我有一个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文件的正确方法是什么,以及如何为保存该文件提供必要的权限吗?
谢谢!
答案 0 :(得分:1)
好的,所以我在更深入地挖掘,找到了解决方案。
下面的代码行对我有用,文件成功保存。
xlApp.ActiveWorkBook.save
然后我只是添加了以下几行来进行清理...(这不是我的问题的一部分,而是为了完成而在此处编写)
xlApp.ActiveWorkBook.close
xlApp.quit
Set xlApp = Nothing
但是我不确定为什么SaveAs不起作用。如果我找到答案,将发布。