使用VBA在EXCEL中填充BAPI导入表参数

时间:2012-03-27 13:47:09

标签: excel-vba sap bapi vba excel

我有一个要求清除的查询。我正在使用excel 2003.该表包含12列。我需要从excel导出数据到SAP。在导出之前,我需要检查记录是否存在,如果存在则删除并插入。

我有两个BAPI,这个是导入表,需要填充参数,填写此表后,BAPI会搜索相关记录。

列表将显示在表格中。我需要使用excel中的值搜索该表,然后将一个字段值导入excel。

我编写了这段代码,但它没有给BAPI提供Error 0

Public Function Import_Order() As Boolean

    Dim oBAPIGetOrder As Object
    Dim oBAPIVariant1 As Object
    Dim oBAPIVariant2 As Object
    Dim oBAPIVariant3 As Object
    Dim oBAPIImpOrder As Variant
    Dim oBAPIRet As Boolean
    Dim oDoNothing As Variant
    gBAPIPlanOrder = 0

    Set oBAPIGetPlOrder = sBAPIControl.Add("PLANED_GET_DET_LIST")   'BAPI
    Set oBAPIVariant1 = oBAPIGetPlOrder.exports.Item("SELECTIONCRITERIA")      'Internal table
    Set oBAPIVariant2 = oBAPIGetPlOrder.Tables.Item("DETAILEDLIST")            'Table

    oBAPIVariant1.Value("MATERIAL") = eMaterial
    oBAPIVariant1.Value("PLANT") = ePlnPlant

    lBAPIRet = oBAPIGetPlOrder.call
    If lBAPIRet Then
        'oBAPIImpOrder = oBAPIGetPlOrder.imports.Item("PLANNEDORDER_NUM")
        a = oBAPIVariant2.Rows.Count
        oBAPIImpOrder = oBAPIVariant2.Value("PLANNEDORDER_NUM")
        Import_PlannedOrder = True
    Else
        oBAPIImpOrder = 0
        Import_PlannedOrder = False
    End If

End Function

提前感谢您的帮助......

1 个答案:

答案 0 :(得分:-1)

请发出呼叫功能声明     lBAPIRet = oBAPIGetPlOrder.call 直接在exports语句之后和表和importstatements之前