我录制了一个脚本,使“另存为”对话框弹出。
但是我不能使用任何命令,如sendkey。
我需要一个代码来提供文件路径和文件名。
到目前为止,我有以下代码:(来自SAP脚本录制和播放)
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
session.findById("wnd[0]").maximize
session.findById("wnd[0]/usr/lbl[30,2]").setFocus
session.findById("wnd[0]/usr/lbl[30,2]").caretPosition = 25
session.findById("wnd[0]").sendVKey 16
谢谢。
大卫
答案 0 :(得分:0)
我不确定tcode FBL5N是如何工作的,但我使用此代码在某些基础交易中导出结果。它可能适用于您的情况,请尝试。
session.findById("wnd[0]/mbar/menu[0]/menu[1]/menu[2]").select
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "C:\folder1\folder2"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "filename.txt"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 13
session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 2
session.findById("wnd[1]/tbar[0]/btn[11]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press

答案 1 :(得分:0)
请参阅我的帖子"从SAP保存PDF"我在哪里发布了一个处理另存为窗口的解决方案。如果适用于SAP和其他Windows,因为它基于WinAPI。
基本上,您需要执行以下4个步骤:
将vbs脚本转换为VBA(您将在excel中运行)。不要包含触发保存为窗口的行。从:
开始子脚本() Dim SapAPP As Variant Dim i As Integer 设置SapGuiAuto = GetObject(" SAPGUI") 设置SapAPP = SapGuiAuto.GetScriptingEngine 设置连接= SapAPP.Children(0) 设置Session = Connection.Children(0)
2.仅使用触发“另存为”窗口的行创建新脚本。例如:
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
session.findById("wnd[0]").sendVKey 16
3.要求VBA运行此VB脚本
Shell "wscript insert_path_here", vbNormalFocus
4.处理另存为窗口(如我的帖子中所述)。
这对我来说在另一个SAP菜单中起作用,但FBL5n应该完全相同。
最佳,