如何检查SAP GUI GridView中指定行是否被选中?
SAP GUI GridView 检查指定行是否选中的解决方案
你可以通过以下两种方法实现检查GridView中指定行是否被选中的功能:
方法一:使用IsRowSelected原生方法
这是SAP GUI Grid控件提供的直接判断行选中状态的方法,返回布尔值,兼容性更好:
Set objGRID1 = SAPSession.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell") If objGRID1.RowCount = 0 Then MsgBox "Keine Daten vorhanden!!" & Chr(10) & "Makro wird beendet!", vbCritical End End If For dblZeile = 0 To objGRID1.RowCount - 1 ' 检查当前行是否被选中 If objGRID1.IsRowSelected(dblZeile) Then MsgBox "第 " & dblZeile + 1 & " 行已被选中", vbInformation ' 可在此添加选中行的后续处理逻辑 End If Next dblZeile
方法二:通过MARK列判断
部分SAP事务码的网格会用MARK列(值为"X"表示选中)标识选中状态,可通过获取该列单元格值判断:
Set objGRID1 = SAPSession.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell") If objGRID1.RowCount = 0 Then MsgBox "Keine Daten vorhanden!!" & Chr(10) & "Makro wird beendet!", vbCritical End End If For dblZeile = 0 To objGRID1.RowCount - 1 ' 获取MARK列值,判断是否为选中状态 If objGRID1.GetCell(dblZeile, "MARK") = "X" Then MsgBox "第 " & dblZeile + 1 & " 行已被选中", vbInformation ' 可在此添加选中行的后续处理逻辑 End If Next dblZeile
注意事项
- 行索引从0开始,代码中
dblZeile + 1是为了显示用户习惯的从1起始的行号。 - 使用方法二时,需确认你的网格确实存在
MARK列,部分场景下列名可能为SEL,可通过SAP GUI的网格属性查看确认。
内容的提问来源于stack exchange,提问作者Lutz Fricke
相关产品推荐
相关产品推荐

