2013-04-23 191 views
3

我尝试使用SAP ABAP OLE对象保护的Excel文件的密码如下:ABAP OLE - 打开Excel密码保护的工作簿

DATA: lt_excel_line(4096) OCCURS 10 WITH HEADER LINE. 
DATA: app  TYPE ole2_object, 
     workbook TYPE ole2_object, 
     worksheet TYPE ole2_object. 

CREATE OBJECT app 'EXCEL.APPLICATION'. 
SET PROPERTY OF app 'VISIBLE' = 0. 

CALL METHOD OF app 'WORKBOOKS' = workbook. 

CALL METHOD OF workbook 'OPEN' 
    EXPORTING 
    #1 = '<filename>' 
    #5 = '<password>'.   

文件名和密码绝对是正确的,打开下面的VBA代码该文件要求没有问题:

Dim wb1 As Workbook 
Set wb1 = Workbooks.Open Filename:="<filename>", Password:="<password>") 

但ABAP代码总是返回SY-SUBRC = 2。任何人都知道什么可以怎么回事?还有什么我可以尝试?感谢任何帮助。

回答

2

我认为问题在于参数只是位置(只是猜测),因为SAP GUI自动化不支持参数名称。 FilenamePassword之间有3个参数,因此您对它们进行了正确的编号,但我想SAP GUI自动化控制器不会这样看。

我复制你的问题,并得到它的工作如下:

CALL METHOD OF workbook 'OPEN' = document 
    EXPORTING 
    #1 = '<filename>' 
    #2 = 0    "UpdateLinks 
    #3 = 0    "ReadOnly 
    #4 = 1    "Format 
    #5 = '<password>'. 

在这里,我明确地传递参数UpdateLinksReadOnlyFormat

我首先在VBA中测试过它。看来Format(#4)必须设置为true。我不知道那是什么。

请记住将此文档句柄设置为此调用的返回,因为我在这里执行此操作,否则您没有参考!

+0

似乎有点古怪,它不承认数字的位置,但这确实奏效 - 非常感谢你!已标明解决 – db579 2013-04-23 10:09:24

相关问题