1. 用Tcode: SE11建立一个标准表ZTBRFC
2. 写好RFC.
3. 在EXCEL中调用该RFC, 并把当前EXCEL Sheet1的数据写入ZTBRFC.
''''''''''''''''''VBA代码:''''''''''''''''''
Private Sub updateRFCTB()
Dim func, iTable As Object
Dim RC As Integer
RC = ActiveSheet.Range("A65535").End(xlUp).Row
If sapConn() Then
Set ofun = CreateObject("SAP.FUNCTIONS")
Set ofun.Connection = oConnection
Set func = ofun.Add("ZRFC_ZTBRFC_DATA")
For j = 2 To RC
' func.exports("ZMANDT") = Range("A" + Trim(Str(j)))
func.exports("ZAUFNR") = Range("B" + Trim(Str(j)))
func.exports("ZKUNNR") = Range("C" + Trim(Str(j)))
func.exports("ZVKORG") = Range("D" + Trim(Str(j)))
func.exports("ZERDAT") = Range("E" + Trim(Str(j)))
func.exports("ZLSMENG") = Range("F" + Trim(Str(j)))
func.exports("ZMEINS") = Range("G" + Trim(Str(j)))
If func.Call = True Then
Set iTable = func.TABLES("ZTB_LIST")
Debug.Print iTable.RowCount
End If
Next
Else
MsgBox "无法连接SAP服务器,请检查网络是否正常!", vbExclamation, "操作提示:"
End If
End Sub
Function sapConn() As Boolean
Set oFunction = CreateObject("SAP.LogonControl.1")
Set oConnection = oFunction.NewConnection
oConnection.ApplicationServer = "192.12.12.10"
oConnection.client = "300"
oConnection.Language = "ZH"
oConnection.user = "myRFC"
oConnection.Password = "myPW"
oConnection.codepage = "8400"
oConnection.SystemNumber = "00"
sapConn = oConnection.logon(0, True)
End Function
''''''''''''''''''
*********ABAP CODE***************************
FUNCTION ZRFC_ZTBRFC_DATA.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(ZAUFNR) LIKE AUFK-AUFNR DEFAULT SPACE
*" VALUE(ZKUNNR) LIKE VBAK-KUNNR DEFAULT SPACE
*" VALUE(ZVKORG) LIKE VBAK-VKORG DEFAULT SPACE
*" VALUE(ZERDAT) LIKE AUFK-ERDAT DEFAULT SPACE
*" VALUE(ZLSMENG) LIKE VBAP-LSMENG DEFAULT SPACE
*" VALUE(ZMEINS) LIKE VBAP-MEINS DEFAULT SPACE
*" TABLES
*" ZTB_LIST STRUCTURE ZTBRFC OPTIONAL
*"----------------------------------------------------------------------
TABLES: ZTBRFC.
DATA: BEGIN OF ITAB OCCURS 0,
AUFNR LIKE AUFK-AUFNR,
KUNNR LIKE VBAK-KUNNR,
VKORG LIKE VBAK-VKORG,
ERDAT LIKE AUFK-ERDAT,
LSMENG LIKE VBAP-LSMENG,
MEINS LIKE VBAP-MEINS,
END OF ITAB.
ITAB-AUFNR = ZAUFNR.
ITAB-KUNNR = ZKUNNR.
ITAB-VKORG = ZVKORG.
ITAB-ERDAT = ZERDAT.
ITAB-LSMENG = ZLSMENG.
ITAB-MEINS = ZMEINS.
MOVE-CORRESPONDING ITAB TO ZTB_LIST.
APPEND ZTB_LIST.
MODIFY ZTBRFC FROM TABLE ZTB_LIST.
COMMIT WORK AND WAIT.
ENDFUNCTION.
本文介绍了如何通过VBA代码与ABAP函数配合,实现从Excel到SAP RFC表的数据自动更新流程。详细阐述了设置SAP连接、编写RFC函数以及在Excel中调用RFC的方法,旨在提升数据处理效率。
425

被折叠的 条评论
为什么被折叠?



