使用VBA从SAP导出打印预览PDF

2020-08-30 14:54发布

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

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


大家好,

我有以下情况:我需要从SAP 750导出VF02的发票,但是我不能这样做。 我写了下面的代码,这很简单,但是根本行不通。 VBA不会提供任何错误并完成任务,但是这里没有输出。 应该打开"保存"对话框的行没有任何作用:

公共子ExportInvoices()
 'ByVal vStrPathSAP作为字符串
     Dim CC,BillingDoc作为字符串
     Dim vcounter As Integer

     '设置条件以开始循环,直到活动单元变为空白
     ThisWorkbook.Activate
     Sheets(" Sheet1")。Select
     范围(" A1")。选择
     当ActiveCell.Value <>""时执行
    
     '建立活动行
     范围(" A1")。选择
     vcounter = ActiveCell.Row
    
     设置xclapp = GetObject(," Excel.Application")
     设置xclwbk = xclapp.ThisWorkbook
     设置xclsht = xclwbk.Sheets(" Sheet1")
     BillingDoc = xclsht.Cells(vcounter,9).Value
     CC = xclsht.Cells(vcounter,2).Value
    
     昏暗的应用程序,连接,会话作为对象
     设置SapGuiAuto = GetObject(" SAPGUI")
     设置应用程序= SapGuiAuto.GetScriptingEngine
     设置连接= App.Children(0)
     设置会话= Connection.Children(0)

             session.findById(" wnd [0]")。maximize
             session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/nVF02"
             session.findById(" wnd [0]")。sendVKey 0
             session.findById(" wnd [0]/usr/ctxtVBRK-VBELN")。Text = BillingDoc
             session.findById(" wnd [0]/usr/ctxtRV60S-BUKRS")。Text = CC
             session.findById(" wnd [0]/usr/ctxtRV60S-BUKRS")。SetFocus
             session.findById(" wnd [0]/usr/ctxtRV60S-BUKRS")。caretPosition = 4
             session.findById(" wnd [0]/mbar/menu [0]/menu [11]")。选择
             session.findById(" wnd [1]/tbar [0]/btn [37]")。按
       
 --- >>>从这里什么都没发生
             设置WshShell = CreateObject(" WScript.Shell")
             WshShell.AppActivate"打印预览,文档1 of 1"


             '根据控件的ID将焦点设置到Acrobat控件
             session.findById(" wnd [0]/usr/cntlHTML_IFBA_PREVIEW/shellcont/shell")。SetFocus


             WshShell.SendKeys" ^ + s"'打开保存对话框


             WshShell.SendKeys"%n"'激活文件名字段
             WshShell.SendKeys" \\正在调查的发票\"&Excel.Cells(vcounter," B")&" \"&Excel.Cells(vcounter," I")&" .pdf"'路径和文件名
             WshShell.SendKeys"%s"'保存文件
       
       
             '转到下一行
             ActiveCell.Offset(1,0)。激活
             vcounter = ActiveCell.Row
     循环
    
 结束子


 

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

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


大家好,

我有以下情况:我需要从SAP 750导出VF02的发票,但是我不能这样做。 我写了下面的代码,这很简单,但是根本行不通。 VBA不会提供任何错误并完成任务,但是这里没有输出。 应该打开"保存"对话框的行没有任何作用:

公共子ExportInvoices()
 'ByVal vStrPathSAP作为字符串
     Dim CC,BillingDoc作为字符串
     Dim vcounter As Integer

     '设置条件以开始循环,直到活动单元变为空白
     ThisWorkbook.Activate
     Sheets(" Sheet1")。Select
     范围(" A1")。选择
     当ActiveCell.Value <>""时执行
    
     '建立活动行
     范围(" A1")。选择
     vcounter = ActiveCell.Row
    
     设置xclapp = GetObject(," Excel.Application")
     设置xclwbk = xclapp.ThisWorkbook
     设置xclsht = xclwbk.Sheets(" Sheet1")
     BillingDoc = xclsht.Cells(vcounter,9).Value
     CC = xclsht.Cells(vcounter,2).Value
    
     昏暗的应用程序,连接,会话作为对象
     设置SapGuiAuto = GetObject(" SAPGUI")
     设置应用程序= SapGuiAuto.GetScriptingEngine
     设置连接= App.Children(0)
     设置会话= Connection.Children(0)

             session.findById(" wnd [0]")。maximize
             session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/nVF02"
             session.findById(" wnd [0]")。sendVKey 0
             session.findById(" wnd [0]/usr/ctxtVBRK-VBELN")。Text = BillingDoc
             session.findById(" wnd [0]/usr/ctxtRV60S-BUKRS")。Text = CC
             session.findById(" wnd [0]/usr/ctxtRV60S-BUKRS")。SetFocus
             session.findById(" wnd [0]/usr/ctxtRV60S-BUKRS")。caretPosition = 4
             session.findById(" wnd [0]/mbar/menu [0]/menu [11]")。选择
             session.findById(" wnd [1]/tbar [0]/btn [37]")。按
       
 --- >>>从这里什么都没发生
             设置WshShell = CreateObject(" WScript.Shell")
             WshShell.AppActivate"打印预览,文档1 of 1"


             '根据控件的ID将焦点设置到Acrobat控件
             session.findById(" wnd [0]/usr/cntlHTML_IFBA_PREVIEW/shellcont/shell")。SetFocus


             WshShell.SendKeys" ^ + s"'打开保存对话框


             WshShell.SendKeys"%n"'激活文件名字段
             WshShell.SendKeys" \\正在调查的发票\"&Excel.Cells(vcounter," B")&" \"&Excel.Cells(vcounter," I")&" .pdf"'路径和文件名
             WshShell.SendKeys"%s"'保存文件
       
       
             '转到下一行
             ActiveCell.Offset(1,0)。激活
             vcounter = ActiveCell.Row
     循环
    
 结束子


 
付费偷看设置
发送
2条回答
SAP砖家
1楼-- · 2020-08-30 15:20

我有相同的解决方案。 您这样做了吗?

callcenter油条
2楼-- · 2020-08-30 15:22

一周热门 更多>