VBA:清除对象(数组)中的数据(VBA中的SAP对象)
我是一名SAP开发人员,对VBA知之甚少。 我正在创建一个VBA,以便使用BAPI将数据发布到SAP。编码工作正常&我能够将数据发布到SAP。我的问题是我的excel中有几行,我必须一行一行地循环&在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
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=没有任何东西会破坏对象,但有时无法清除数据。我面临这个问题,通过将对象创建代码移动到循环中解决了这个问题 希望有帮助: