在脚本结束时,将打开新的"打印"对话框。 我想自动化,请建议代码

2020-09-23 14:45发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


以上对话框打开

我想通过Excel VBA脚本自动化

请提示代码。

sap.jpg (35.8 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


以上对话框打开

我想通过Excel VBA脚本自动化

请提示代码。

sap.jpg (35.8 kB)
付费偷看设置
发送
6条回答
Violet凡
1楼 · 2020-09-23 15:34.采纳回答

Pavan,

我确实使用这种解决方法已有多年了。

问候,

ScriptMan

 set Wshell = CreateObject(" WScript.Shell")
 做
  bWindowFound = Wshell.AppActivate("打印")
  WScript.Sleep 1000
 循环直到bWindowFound
 bWindowFound = Wshell.AppActivate("打印")
 如果(bWindowFound)然后
   Wshell.appActivate"打印"
   WScript.Sleep 100
   Wshell.sendkeys" {ENTER}"
 万一
 bWindowFound = Wshell.AppActivate("打印")
 如果(bWindowFound)然后
   Wshell.appActivate"打印"
   WScript.Sleep 100
   Wshell.sendkeys" {TAB} {ENTER}"
 万一
 bWindowFound = Wshell.AppActivate("打印")
 如果(bWindowFound)然后
   Wshell.appActivate"打印"
   WScript.Sleep 100
   Wshell.sendkeys" {TAB} {TAB} {ENTER}"
 万一
 错误返回下一个
 session.findById(" wnd [1]")。close
 错误时转到0
 
SC_Yao
2楼-- · 2020-09-23 15:22

尊敬的先生

程序在下面的行中调试,并显示如下运行时错误

请提出建议

spaceman01
3楼-- · 2020-09-23 15:18

嗨,Pavan,

以上解决方案仅适用于VBS。 下面的解决方案也可以用于VBA。

此致

ScriptMan

设置wshell = CreateObject(" WScript.Shell")
 做
  bWindowFound = wshell.AppActivate("打印")
  'WScript.Sleep 1000
  wshell.Run" c:\ tmp \ sleep.vbs"&" 1000",0,True
 循环直到bWindowFound
 bWindowFound = wshell.AppActivate("打印")
 如果(bWindowFound)则
   wshell.AppActivate"打印"
   'WScript.Sleep 100
   wshell.Run" c:\ tmp \ sleep.vbs"&" 100",0,True
   wshell.SendKeys" {ENTER}"
 万一
 bWindowFound = wshell.AppActivate("打印")
 如果(bWindowFound)则
   wshell.AppActivate"打印"
   'WScript.Sleep 100
   wshell.Run" c:\ tmp \ sleep.vbs"&" 100",0,True
   wshell.SendKeys" {TAB} {ENTER}"
 万一
 bWindowFound = wshell.AppActivate("打印")
 如果(bWindowFound)则
   wshell.AppActivate"打印"
   'WScript.Sleep 100
   wshell.Run" c:\ tmp \ sleep.vbs"&" 100",0,True
   wshell.SendKeys" {TAB} {TAB} {ENTER}"
 万一
 bWindowFound = wshell.AppActivate("打印")
 虽然(bWindowFound)
   'WScript.Sleep 500
   wshell.Run" c:\ tmp \ sleep.vbs"&" 500",0,True
   bWindowFound = wshell.AppActivate("打印")
 温德
 关于错误继续
 session.findById(" wnd [1]")。关闭
 出错时转到0

 。  。  。


 在c:\ tmp中的sleep.vbs:

 设置参数= wscript.arguments
 如果args.count> 0则
    Wscript.Sleep WScript.Arguments(0)
 其他
  Wscript.Sleep 1000
 万一

 
葫芦娃快救爷爷
4楼-- · 2020-09-23 15:32

谢谢

非常

当学会了学习
5楼-- · 2020-09-23 15:35
 set Wshell = CreateObject(" WScript.Shell")
 做
  bWindowFound = Wshell.AppActivate("打印")
  WScript.Sleep 1000
 循环直到bWindowFound
 bWindowFound = Wshell.AppActivate("打印")
 如果(bWindowFound)然后
   Wshell.appActivate"打印"
   WScript.Sleep 100
   Wshell.sendkeys" {ENTER}"
 万一
 bWindowFound = Wshell.AppActivate("打印")
 如果(bWindowFound)然后
   Wshell.appActivate"打印"
   WScript.Sleep 100
   Wshell.sendkeys" {TAB} {ENTER}"
 万一
 bWindowFound = Wshell.AppActivate("打印")
 如果(bWindowFound)然后
   Wshell.appActivate"打印"
   WScript.Sleep 100
   Wshell.sendkeys" {TAB} {TAB} {ENTER}"
 万一
 错误返回下一个
 session.findById(" wnd [1]")。close
 根据您的脚本错误转到0 
,我想更改copie的数量?

ScriptMan,您能帮我吗?

clasier
6楼-- · 2020-09-23 15:20

对不起,但是今天我只是偶然看到了这个问题。

但是您必须事先确定可以跳到副本数量的热键。 当窗口出现在手动呼叫中并且在前台时,请按ALT键。 这时强调了一封信,必须采取。 不幸的是,我使用的是德语版本,因此无法在此处进行测试。

我的建议:

 set Wshell = CreateObject(" WScript.Shell")
 做
  bWindowFound = Wshell.AppActivate("打印")
  WScript.Sleep 1000
 直到bWindowFond循环
 bWindowFound = Wshell.AppActivate("打印")
 如果(bWindowFound)然后
   Wshell.appActivate"打印"
   WScript.Sleep 100
   Wshell.sendkeys"%n"'或u,m,b,e,r ...
   WScript.Sleep 100
   Wshell.sendkeys" 2"
   WScript.Sleep 100
   Wshell.sendkeys" {TAB}"
   WScript.Sleep 100
   Wshell.sendkeys" {ENTER}"
 万一
 。  。  。
 

此致

ScriptMan

一周热门 更多>