我正在尝试在Excel中创建一个宏,它会将我登录到SAP,我的代码给了我一个确认我信息的弹出窗口,但是当我提交表单时它不会将我带到新的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
答案 0 :(得分:1)
此宏永远不会打开SAP窗口 - 它将在VBA中创建SAP-Object,您可以在其中使用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
答案 1 :(得分:1)
因为您想要打开一个新的SAP Window&#34;你必须采取不同的方法!
首先尝试使用&#34; sapshcut&#34;从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
您还可以通过添加&#34; -command = your_tcode&#34;来添加交易。到字符串。
如果参数中有空格,则只能使用-system =&#34; System Test Environment&#34;从Commanline开始,您将不得不在Excel中使用-system =&#34;&#34;&#34;系统测试环境&#34;&#34;&#34; (!)