我是一名对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
先谢谢!! 问候, 阿尼尔马尔霍特拉
答案 0 :(得分:0)
尝试在For循环下使用Set poitems = objbapi.tables.Item(“POITEM”)。
设置poitems = NOTHING会破坏对象但有时不清除数据。我遇到了这个问题,并通过将创建代码的对象移动到循环中来解决。
希望有所帮助:)