2013-04-23 190 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

相關問題