繁体   English   中英

如何使用 Excel VBA 访问 SAP?

[英]How to access SAP using Excel VBA?

我正在尝试登录 SAP。 Excel VBA 代码给了我一个确认我的信息的弹出窗口,但是当我提交表单时,它不会将我带到一个新的 SAP 窗口。

此外,有没有办法让所有要求确认我的信息的弹出框自动化? 我希望这段代码最终能在一天中的特定时间运行,而且我可能无法输入任何数据。

Sub login1()
Dim sap As Object
Dim conn As Object

Set sap = CreateObject("SAP.Functions")
Set conn = sap.Connection
conn.System = "System Test Environment"
conn.client = "100"
conn.user = "user"
conn.Password = "password"
conn.Language = "EN"

If conn.logon(0, False) <> True Then
    MsgBox "Logon to the SAP system is not possible", vbOKOnly, "Comment"
Else

End If
End Sub

此宏永远不会打开 SAP 窗口 - 它会在 VBA 中创建一个 SAP 对象,您可以在其中使用 SAP-RFC-Functions。 (从 SAP 读取数据,将数据写入 SAP)

在您的版本中,“End Sub”后将无法访问 SAP 连接。 您必须在 sub 之外声明 Object。

这对我来说是无声的(没有对话):

Dim sap As Object

Public Function login1() As Boolean

  Set sap = CreateObject("SAP.Functions")

  sap.Connection.System = "System Test Environment"
  sap.Connection.client = "100"
  sap.Connection.user = "user"
  sap.Connection.Password = "password"
  sap.Connection.Language = "EN"

  If sap.Connection.logon(0, False) <> True Then
    sap.RemoveAll
    MsgBox "Logon to the SAP system is not possible", vbOKOnly, "Comment"
  Else
    login1 = true
  End If

End Function

Public Function SAPLogoff()
    On Error Resume Next
    sap.RemoveAll
    sap.Connection.logoff

    LoggedOn = False
    Set sap = Nothing
    'Set conn = Nothing
End Function

由于您想“打开一个新的 SAP 窗口”,您必须采取不同的方法!

首先尝试使用“sapshcut”从 DOS 命令行打开 SAP 的新实例:

C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe -system="System Test Environment" -client="100" -user="user" -password="password" -language="EN"

如果您的 SystemName 没有空格(我相信如此!)那么您也可以这样写:

C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe -system=SystemTestEnvironment -client=100 -user=user -password=password -language=EN

当此调用适用于您的凭据时,您可以像这样将其传输到 Excel:

Sub login1()

  Call Shell("C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe -system=SystemTestEnvironment -client=100 -user=user -password=password -language=EN",vbNormalFocus)

End Sub

您还可以通过向字符串添加“-command=your_tcode”来添加交易。

如果您的参数中有空格,并且您只能使用命令行中的 -system="System Test Environment" 启动它,则您必须在 Excel 中使用 -system="""System Test Environment""" (!)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM