打开Excel文件并从PowerBuilder调用宏

时间:2012-01-12 22:43:40

标签: excel powerbuilder

我正在尝试使用PowerBuilder中的某些参数调用宏,但它无效。

这是我正在使用的代码:

OLEObject ole_object
ole_object = CREATE OLEObject

string ls_reportInPath = "C:\Prevalidador_DIAN_Tributario_2011_v1.4\Prevalidador.xls"
string ls_macroname = "Prevalidador.xls!modXML.cargarXML_General"
string ls_xml = "C:\Users\...\Desktop\010100107201100000001.xml"
string ls_file = "C:\Users\...\Desktop\excel_file.xls"

IF ole_object.ConnectToNewObject("excel.application") = 0 THEN
    ole_object.Object.Application.DisplayAlerts = "False"
    ole_object.workbooks.Open(ls_reportInPath) //Open the .xls file
Else
    MessageBox('OLE Error','Unable to start an OLE server process!',Exclamation!)
END IF

ole_object.Object.Application.Run (ls_macroname)

ole_object.Application.Quit()
ole_object.DisconnectObject()
DESTROY ole_object

另外,我想向用户展示excel表。

这是我得到的错误:

enter image description here

错误在两行中很常见:

ole_object.Object.Application.DisplayAlerts = "False"
ole_object.Object.Application.Run (ls_macroname)

3 个答案:

答案 0 :(得分:1)

执行强制文本时Excel可能出错 - >布尔?

我在这里有一些代码,我们在不使用Object btw的情况下执行以下操作:

OLEObject iole_xlapp
iole_xlapp = CREATE OLEObject
li_rtn = iole_xlapp.ConnectToNewObject( "excel.application" )
//...
iole_xlapp.Application.DisplayAlerts = True

答案 1 :(得分:1)

而不是"ole_object.Object.Application.Run (ls_macroname)",

使用

ole_object.Application.Run (ls_macroname)

它会起作用。

答案 2 :(得分:0)

这是一个黑暗中的镜头,但我会在“对象”中小写O.

祝你好运,

特里。