VBA:清除对象(数组)中的数据(VBA中的SAP对象)

时间:2015-09-01 08:56:33

标签: excel vba excel-vba

我是一名对VBA知之甚少的SAP开发人员。 我正在创建一个VBA,使用BAPI将数据发布到SAP。编码工作正常&我可以将数据发布到SAP中。我的问题是我的Excel中有几行,我必须逐行循环行。在SAP上传数据,每次上传后我需要清除内容,我不知道需要用什么语法来清除对象变量的数据。以下是代码段..

Set objbapicontrol = CreateObject("SAP.Functions")
Set objbapi = objbapicontrol.Add("BAPI_PO_CREATE1")
Set poheader = objbapi.exports.Item("POHEADER")
Set poitems = objbapi.tables.Item("POITEM")

For Each row In [POHEAD].Rows    '##PO Header
 If row.Columns(row.ListObject.ListColumns("SAP_PO_NUM").Index).Value = "" Then
    ponum = (row.Columns(row.ListObject.ListColumns("PONumber").Index).Value)
    poheader.Value("COMP_CODE") = (row.Columns(row.ListObject.ListColumns("COCD").Index).Value)
i = "00001"
    n = 1
'###Loop Detail
 For Each rowd In [PODET].Rows         '##PO Detail
     If (rowd.Columns(rowd.ListObject.ListColumns("PONumber").Index).Value) = ponum Then
     poitem = (rowd.Columns(rowd.ListObject.ListColumns("Itemnumber").Index).Value)
     poitems.Rows.Add
     poitemsx.Rows.Add
     poitems.Value(n, "PO_ITEM") = i
     poitems.Value(n, "MATERIAL") = Material
Next          '##PO Detail
  returnfunc = objbapi.call
  ponumber = objbapi.imports("EXPPURCHASEORDER")
  Set retmess = objbapi.tables.Item("RETURN")
Set poitems = Nothing
next

我正在使用代码"Set POITEMS = NOTHING"但是当我设置对象时,之前的数据不会被清除。在SAP

中创建重复的enteries

先谢谢!! 问候, 阿尼尔马尔霍特拉

1 个答案:

答案 0 :(得分:0)

尝试在For循环下使用Set poitems = objbapi.tables.Item(“POITEM”)。

设置poitems = NOTHING会破坏对象但有时不清除数据。我遇到了这个问题,并通过将创建代码的对象移动到循环中来解决。

希望有所帮助:)