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

VBA:清除对象(数组)中的数据(VBA中的SAP对象),vba,excel,Vba,Excel,我是一名SAP开发人员,对VBA知之甚少。 我正在创建一个VBA,以便使用BAPI将数据发布到SAP。编码工作正常&我能够将数据发布到SAP。我的问题是我的excel中有几行,我必须一行一行地循环&在SAP中上载数据,每次上载后我需要清除内容,我不知道需要使用什么语法来清除对象变量的数据。下面是代码片段 Set objbapicontrol = CreateObject("SAP.Functions") Set objbapi = objbapicontrol.Add("BAPI_PO_CREA

我是一名SAP开发人员,对VBA知之甚少。 我正在创建一个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
我使用的代码集POITEMS=NOTHING,但是当我设置对象时,之前的数据不会被清除&在SAP中创建重复的条目

提前谢谢!! 当做
Anil Malhotra

尝试在For循环下使用Set poitems=objbapi.tables.ItemPOITEM

set poitems=没有任何东西会破坏对象,但有时无法清除数据。我面临这个问题,通过将对象创建代码移动到循环中解决了这个问题

希望有帮助: