Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何用零值声明窗口_Vba_Sap - Fatal编程技术网

Vba 如何用零值声明窗口

Vba 如何用零值声明窗口,vba,sap,Vba,Sap,我遇到了这样一种情况:SAP中的表没有字段,我必须返回主表并开始下一次迭代。我不知道如何在VBA中声明此事件。在其他情况下,我只需双击行。此表调用调试窗口,脚本停止。有人能给出一个关于如何停止调试器模式并转到下一个迭代的提示吗?我的问题是我不知道如何在VBA中声明这样的事件 零线TBL 子循环_树() Dim应用程序、连接、会话作为对象 设置SapGuiAuto=GetObject(“SAPGUI”) 设置应用程序=SapGuiAuto.GetScriptingEngine 设置连接=应用程

我遇到了这样一种情况:SAP中的表没有字段,我必须返回主表并开始下一次迭代。我不知道如何在VBA中声明此事件。在其他情况下,我只需双击行。此表调用调试窗口,脚本停止。有人能给出一个关于如何停止调试器模式并转到下一个迭代的提示吗?我的问题是我不知道如何在VBA中声明这样的事件

零线TBL

子循环_树()
Dim应用程序、连接、会话作为对象
设置SapGuiAuto=GetObject(“SAPGUI”)
设置应用程序=SapGuiAuto.GetScriptingEngine
设置连接=应用程序.Children(0)
设置会话=连接。子级(0)
如果不是IsObject(应用程序),则
设置SapGuiAuto=GetObject(“SAPGUI”)
设置应用程序=SapGuiAuto.GetScriptingEngine
如果结束
如果不是IsObject(连接),则
设置连接=应用程序.Children(0)
如果结束
如果不是IsObject(会话),则
设置会话=连接。子级(0)
如果结束
如果是IsObject(WScript),则
WScript.ConnectObject会话,“打开”
WScript.ConnectObject应用程序,“打开”
如果结束
Session.findById(“wnd[0]”)。最大化
Session.findById(“wnd[0]/tbar[0]/okcd”).Text=“/nCT04”
Session.findById(“wnd[0]/tbar[0]/btn[0]”。按
Set objExcel=GetObject(,“Excel.Application”)
设置objSheet=objExcel.ActiveWorkbook.ActiveSheet
COL3=微调(CStr(对象表范围(“C2”).值))第3列
COL4=微调(CStr(对象表范围(“D2”).值))第4列
Session.findById(“wnd[0]/usr/subCHARACT:SAPLCTMV:2000/副标题:SAPLCTMV:1100/ctxtRCTAV ATNAM”)。Text=COL3
Session.findById(“wnd[0]/usr/subCHARACT:SAPLCTMV:2000/副标题:SAPLCTMV:1100/ctxtRCTAV ATNAM”)。caretPosition=13
Session.findById(“wnd[0]/usr/subCHARACT:SAPLCTMV:2000/副标题:SAPLCTMV:1100/btnDISPLAY”)。按
Session.findById(“wnd[0]/mbar/menu[4]/menu[0]”。选择
Session.findById(“wnd[0]/usr/chkGF_DEP”)。Selected=True
Session.findById(“wnd[0]/usr/ctxtCAWN ATWRT”).Text=COL4
Session.findById(“wnd[0]/usr/chkGF_DEP”).SetFocus
Session.findById(“wnd[0]/tbar[1]/btn[8]”。按
Dim myTree作为对象
Dim RowCount,rows,i,j为整数
设置myTree=Session.findById(“wnd[0]/usr/cntlUSAGE\u TREE\u CONTAINER/shellcont/shell/shellcont[1]/shell[1]”)
RowCount=myTree.GetColumnCol(myTree.GetColumnNames.Item(0)).Length
行数=行数-1
对于i=5到行
j=i-3
myTree.selectedNode右(“+CStr(i),11)
myTree.doubleClickNode右(“+CStr(i),11)
Session.findById(“wnd[0]/mbar/menu[4]/menu[0]”。选择
如果Session.ActiveWindow.Name=“wnd[1]”,则
'Session.findById(“wnd[1]/tbar[0]/btn[0]”。按
Session.findById(“wnd[1]”)。sendVKey 0
Session.findById(“wnd[0]/tbar[0]/btn[3]”。按
后藤下滴度
如果结束
“我们走到桌边
Session.findById(“wnd[0]/usr/lbl[6,8]”)。SetFocus
Session.findById(“wnd[0]/usr/lbl[6,8]”)。caretPosition=1
Session.findById(“wnd[0]”)。sendVKey 2
Session.findById(“wnd[0]/usr/tabsTS_ITEM/tabpPHPT/ssubpage:SAPLCSDI:0830/ctxtRC29P IDNRK”).SetFocus
Session.findById(“wnd[0]/usr/tabsTS_ITEM/tabpPHPT/ssubpage:SAPLCSDI:0830/ctxtRC29P IDNRK”)。caretPosition=5
Session.findById(“wnd[0]”)。sendVKey 2
Session.findById(“wnd[0]/usr/tabsTABSPR1/tabpSP27”)。选择
Session.findById(“wnd[1]/usr/ctxtRMMG1-WERKS”).Text=“0600”
Session.findById(“wnd[1]/usr/ctxtRMMG1-WERKS”).caretPosition=4
Session.findById(“wnd[1]/tbar[0]/btn[0]”。按
如果Session.ActiveWindow.Name=“wnd[2]”,则
'Session.findById(“wnd[2]/tbar[0]/btn[0]”。按
Session.findById(“wnd[2]”)。sendVKey 0
如果结束
Session.findById(“wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB3:SAPLMGD1:2953/txtMBEW STPRS”).SetFocus
Session.findById(“wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB3:SAPLMGD1:2953/txtMBEW STPRS”)。caretPosition=0
cost=Session.findById(“wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB3:SAPLMGD1:2953/txtMBEW STPRS”).Text
范围(“G”&j)=成本”返回生产零件的最新成本
Session.findById(“wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB1:SAPLMGD1:1009/ctxtRMMG1 MATNR”).SetFocus
Session.findById(“wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB1:SAPLMGD1:1009/ctxtRMMG1 MATNR”)。caretPosition=7
material=Session.findById(“wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB1:SAPLMGD1:1009/ctxtRMMG1 MATNR”)。文本
范围(“E”&j)=物料”返回生产零件号
Session.findById(“wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB1:SAPLMGD1:1009/txtMAKT-MAKTX”).SetFocus
Session.findById(“wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB1:SAPLMGD1:1009/txtMAKT-MAKTX”)。caretPosition=8
description=Session.findById(“wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB1:SAPLMGD1:1009/txtMAKT-MAKTX”)。Text
范围(“F”&j)=说明”返回生产零件说明
Session.findById(“wnd[0]/tbar[0]/btn[3]”。按
Session.findById(“wnd[0]/tbar[0]/btn[3]”。按
Session.findById(“wnd[0]/tbar[0]/btn[3]”。按
Session.findById(“wnd[0]/tbar[0]/btn[3]”。按
下一次滴定:
接下来我

End Sub
从链接中,我为您找到了以下变量:

...
'WE REACHED THE TABLE

set sapusr = session.findById("wnd[0]/usr")
sapusr.VerticalScrollbar.Position = 0
childcount = sapusr.Children.Count
lastchildID = sapusr.Children(childcount - 1).ID
visrow = CLng(Right(Left(lastchildID, Len(lastchildID) - 1), _
        Len(lastchildID) - InStr(1, lastchildID, ",") - 1))
totscrol = sapusr.VerticalScrollbar.Maximum
'msgbox lastchildID
'msgbox ChildCount
'msgbox totscrol
'msgbox visrow
If visrow > 7 Then 
   Session.findById("wnd[0]/usr/lbl[6,8]").SetFocus 
   Session.findById("wnd[0]/usr/lbl[6,8]").caretPosition = 1
Else 
   Session.findById("wnd[0]/tbar[0]/btn[3]").press     
   Session.findById("wnd[0]/tbar[0]/btn[3]").press 
   GoTo NextIteration 
End If
...
问候,,
ScriptMan

我发现第一列的ADAC_uuu值位于session.findById(“wnd[0]/usr/lbl[1,7]”)下。caretPosition=16但我仍在试图找出如何处理这种情况。当表中有以
session.findById(“wnd[0]/usr/lbl[6,8]”开头的值行时,弹出窗口显示“无法通过ID找到控制”发布问题代码会增加您获得答案的机会…@TimWilliams我在帖子中添加了代码(我在CAPS中指定了我的代码到达表格内容的位置。您好@ScriptMan非常感谢您的指导。我肯定会学习该理论,以便更深入地理解它。此刻,作为一名初学者,我正被各种尝试和错误所困扰。。。