VBA SAP宏:将Excel导入到SAP多个单元格

2020-09-25 01:38发布

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

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


嗨,


我每天都在使用SAP和excel。 一部分工作是将粘贴数据从excel复制到SAP。

我创建了可以帮助我完成此操作的宏。 问题是宏仅按单元复制粘贴数据。

我需要按25个单元格复制粘贴。

有人建议如何调整脚本,以便每25个值复制并粘贴一次?
附加脚本

如果不是IsObject(application),则
设置SapGuiAuto = GetObject(" SAPGUI")
设置应用程序= SapGuiAuto.GetScriptingEngine
如果不是,请结束 IsObject(连接)然后
设置连接= application.Children(0)
如果不是,则结束IsObject(session)然后
设置会话=连接。Children(0)
如果< br> If IsObject(WScript)然后
WScript.ConnectObject会话,"在"上
WScript.ConnectObject应用程序,"在"上
如果设置xclapp = CreateObject(" Excel.Application",则结束 ")
设置xclwbk = xclapp.Workbooks.Open(" C:\ ... \ test.xlsm")
set xclsht = xclwbk.Sheets(" Sheet1")

i = 2到xclapp.ActiveCell.SpecialCells(11)。行
对于j = 1到xclapp.ActiveCell.SpecialCells(11)。列
如果j = 1则SKU = xclsht.Cells(i,j) .Value

下一个
session.findById(" wnd [0]")。resizeWorkingPane 254,39,false
session.findById(" wnd [0]/usr/tblSAPMV13GTCTRL_FAST_ENTRY/ctxtKOMGG-PMATN [0,0]")。text = SKU
session.findB yId(" wnd [0]/usr/tblSAPMV13GTCTRL_FAST_ENTRY/ctxtKOMGG-PMATN [0,0]")。setFocus
session.findById(" wnd [0]/usr/tblSAPMV13GTCTRL_FAST_ENTRY/ctxtKOMGG-PMATN [0,0]" ).caretPosition = 0
session.findById(" wnd [0]")。sendVKey 0
session.findById(" wnd [0]")。sendVKey 11

' VBScript。
下一个
msgbox"全部"&cstr(xclapp.ActiveCell.SpecialCells(11).Row-1)&" Excel行已处理。"

设置xclwbk =禁用
设置xclsht =禁用
xclapp。退出
设置xclapp =禁用

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

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


嗨,


我每天都在使用SAP和excel。 一部分工作是将粘贴数据从excel复制到SAP。

我创建了可以帮助我完成此操作的宏。 问题是宏仅按单元复制粘贴数据。

我需要按25个单元格复制粘贴。

有人建议如何调整脚本,以便每25个值复制并粘贴一次?
附加脚本

如果不是IsObject(application),则
设置SapGuiAuto = GetObject(" SAPGUI")
设置应用程序= SapGuiAuto.GetScriptingEngine
如果不是,请结束 IsObject(连接)然后
设置连接= application.Children(0)
如果不是,则结束IsObject(session)然后
设置会话=连接。Children(0)
如果< br> If IsObject(WScript)然后
WScript.ConnectObject会话,"在"上
WScript.ConnectObject应用程序,"在"上
如果设置xclapp = CreateObject(" Excel.Application",则结束 ")
设置xclwbk = xclapp.Workbooks.Open(" C:\ ... \ test.xlsm")
set xclsht = xclwbk.Sheets(" Sheet1")

i = 2到xclapp.ActiveCell.SpecialCells(11)。行
对于j = 1到xclapp.ActiveCell.SpecialCells(11)。列
如果j = 1则SKU = xclsht.Cells(i,j) .Value

下一个
session.findById(" wnd [0]")。resizeWorkingPane 254,39,false
session.findById(" wnd [0]/usr/tblSAPMV13GTCTRL_FAST_ENTRY/ctxtKOMGG-PMATN [0,0]")。text = SKU
session.findB yId(" wnd [0]/usr/tblSAPMV13GTCTRL_FAST_ENTRY/ctxtKOMGG-PMATN [0,0]")。setFocus
session.findById(" wnd [0]/usr/tblSAPMV13GTCTRL_FAST_ENTRY/ctxtKOMGG-PMATN [0,0]" ).caretPosition = 0
session.findById(" wnd [0]")。sendVKey 0
session.findById(" wnd [0]")。sendVKey 11

' VBScript。
下一个
msgbox"全部"&cstr(xclapp.ActiveCell.SpecialCells(11).Row-1)&" Excel行已处理。"

设置xclwbk =禁用
设置xclsht =禁用
xclapp。退出
设置xclapp =禁用

付费偷看设置
发送
1条回答
悻福寶寶
1楼-- · 2020-09-25 02:38

Oleh,

我对程序的构建非常熟悉。 ;-)

我对您有以下建议:

。  。  。
  设置xclsht = xclwbk.Sheets(" Sheet1")
  '----------------------------------------新--------  --------------------------------------------------
  k = 0
  l = 0
  对于i = 2到xclapp.ActiveCell.SpecialCells(11).Row
   SKU = xclsht.Cells(i,1).Value
   session.findById(" wnd [0]/usr/tblSAPMV13GTCTRL_FAST_ENTRY/ctxtKOMGG-PMATN [0,"&cstr(k)&"]")。text = SKU
   k = k + 1
   l = l + 1
   如果k = 25则
    session.findById(" wnd [0]/usr/ssubITEMS:SAPLFSKB:0100/tblSAPLFSKBTABLE")。verticalScrollbar.position = l
    k = 0
   万一
  下一个
  'session.findById(" wnd [0]")。sendVKey 11
  '----------------------------------------新--------  --------------------------------------------------  --
  msgbox"全部"&cstr(xclapp.ActiveCell.SpecialCells(11).Row-1)&" Excel行已处理。"
  。  。  。
 

我已经故意禁用了session.findById(" wnd [0]")。sendVKey 11命令。如果所有内容都已从Excel转移并且可以,您也可以手动保存。

此致

ScriptMan

一周热门 更多>