当前位置: 首页 > 编程笔记 >

使用VBA宏调用ABAP代码

梁兴文
2023-03-14
本文向大家介绍使用VBA宏调用ABAP代码,包括了使用VBA宏调用ABAP代码的使用技巧和注意事项,需要的朋友参考一下

请尝试使用以下脚本-

Dim sapConn As Object
\\Declaring a connection object
Set sapConn = CreateObject("SAP.Functions")

\\Creating an ActiveX object
sapConn.Connection.user = "username"
sapConn.Connection.Password = "xxxx"
sapConn.Connection.client = "client#"
sapConn.Connection.ApplicationServer = "Application Server”
sapConn.Connection.Language = "PT"

If sapConn.Connection.Logon(0, True) <> True Then //Checking connection here
   MsgBox "Not able to login to SAP"
Else
   MsgBox "Login Successful !!"
End If
Dim rfcAcctDocCheck As Object
Dim oAcctHeader As Object
Dim otAcctAR, otAcctGL, otAcctAP, otAcctAMT, otReturn As Object

Set rfcAcctDocCheck = sapConn.Add("BAPI_ACC_DOCUMENT_CHECK")
Set oAcctHeader = rfcAcctDocCheck.Exports("DOCUMENTHEADER")
Set otAcctGL = rfcAcctDocCheck.Tables("ACCOUNTGL")
Set otAcctAR = rfcAcctDocCheck.Tables("ACCOUNTRECEIVABLE")
Set otAcctAP = rfcAcctDocCheck.Tables("ACCOUNTPAYABLE")
Set otAcctAMT = rfcAcctDocCheck.Tables("CURRENCYAMOUNT")
Set otReturn = rfcAcctDocCheck.Tables("RETURN")
               Dim qtLegs As Integer
Dim dt, comp, tpDoc, docRef, tpAcct, acct, customer, vendor, _
   curr, val, spLedger, ccenter, order As String
Dim curLine As Integer

For lin = 1 To UBound(reg)
   id = Format(tbPost.Cells(reg(lin).lin_ini, K_COL_ID), "0000000000")
   dt = getDate(tbPost.Cells(reg(lin).lin_ini, K_COL_DT))
   comp = getCompanyCode(tbPost.Cells(reg(lin).lin_ini, K_COL_EMPR))
   tpDoc = getDocumentType(tbPost.Cells(reg(lin).lin_ini, K_COL_TP_DOC))
   docRef = tbPost.Cells(reg(lin).lin_ini, K_COL_DOC_REF)
   otAcctGL.freeTable
   otAcctAR.freeTable
   otAcctAP.freeTable
   otAcctAMT.freeTable
oAcctHeader("USERNAME") = sapConn.Connection.user
oAcctHeader("HEADER_TXT") = "Excel"
oAcctHeader("COMP_CODE") = comp
oAcctHeader("DOC_DATE") = dt
oAcctHeader("PSTNG_DATE") = dt
oAcctHeader("DOC_TYPE") = tpDoc
oAcctHeader("REF_DOC_NO") = docRef
otAcctAMT.Rows.Add
otAcctAMT(otAcctAMT.Rows.Count, "ITEMNO_ACC") = Format(leg, "0000000000")
otAcctAMT(otAcctAMT.Rows.Count, "CURRENCY") = curr
otAcctAMT(otAcctAMT.Rows.Count, "AMT_BASE") = val
Next
If rfcAcctDocCheck.Call = False Then
   MsgBox rfcAcctDocCheck.Exception
End If
 类似资料:
  • 问题内容: 我需要根据通过Java从数据库中获取的数据生成Excel工作表。为此,我需要在生成Excel时调用一些VBA宏函数。有人可以帮助我如何从Java代码调用VBA宏吗? 问题答案: 我不太了解您从数据库中的数据生成Excel工作表的总体方法。通常,我会使用Vivek提出的Apache POI。 但是,如果您确实需要在工作表中调用Excel宏,则需要做两件事: 首先,您需要一个JAVA-CO

  • 在本章中,我们来学习如何逐步编写一个简单的宏。 第1步 - 首先,在Excel 2016中启用“开发者”菜单。要完成这个设置,请点击左上角菜单:文件 -> 选项。如下图所示 - 第2步 - 点击“自定义功能区”选项卡并选中“开发工具”。然后点击“确定”。如下图所示 - 第3步 - “开发工具”功能区出现在菜单栏中。如下图所示 - 第4步 - 点击 “Visual Basic” 按钮打开VBA编辑器

  • 一旦进入,它从新打开的工作簿中调用另一个子例程,子例程运行良好(需要2-3分钟),但随后代码自动退出循环(我的意思是它不打开循环中的下一个文件)。是因为被调用宏的处理时间吗?我可以用一些关于这个问题的见解,这将是非常有帮助的。提前致谢:) 末端接头

  • 注释用于记录程序逻辑和用户信息,其他程序员将来可以阅读并理解相同的代码无缝工作。 它包括由开发者,修改者以及还可以包括合并逻辑的信息。 解释器在执行时忽略注释。 VBA中的注释用两种方法表示,它们分别如下 - 任何以单引号()开头的语句都被视为注释。以下是注释的一个例子。 任何以关键字开头的语句。以下是注释的一个例子。

  • 问题内容: 我已经阅读了xlwings的API文档,并在解释器中玩过Workbook和Sheet对象,但是我不知道如何从Python调用宏。 如何使用xlwings从Python调用Excel宏? 问题答案: 尚未实现,但是有一个未解决的问题,请参见此处。同时,您可以像这样解决它(这适用于Windows,但Mac版本适用,请在问题中再次查看): 更新 :对于最新版本,您必须执行以下操作: 更新2

  • 我有一个word文档,其中包含许多由html标记定义的html文档。我想创建一个数组或范围集合,每个范围由一个html文档组成。例如,以下是Word文档: 等等。我想用一系列范围来填充rngHTMLDocs()As Range,每个范围包含每个打开和关闭html标记中的文本。 我创建了以下代码,试图遍历定义这些范围的整个文档,但它只继续选择超文本标记语言Doc 1。我想我可能以错误的方式接近整个迭