我正在尝试使用SAP ABAP OLE OBJECT打开受密码保护的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.任何人都知道会发生什么?或者我还能尝试什么?感谢任何帮助。
答案 0 :(得分:2)
我认为问题在于参数只是位置(只是猜测),因为SAP GUI自动化不支持参数名称。 Filename
和Password
之间有3个参数,因此您正确编号,但我猜SAP GUI自动化控制器不会这样看。
我复制了你的问题并按如下方式运行:
CALL METHOD OF workbook 'OPEN' = document
EXPORTING
#1 = '<filename>'
#2 = 0 "UpdateLinks
#3 = 0 "ReadOnly
#4 = 1 "Format
#5 = '<password>'.
这里我明确传递参数UpdateLinks
,ReadOnly
和Format
。
我首先在VBA中测试过它。似乎Format
(#4)必须设置为true。我不知道那是什么。
请记住将文档句柄设置为此调用的返回值,否则您没有引用它!