excel - 状态栏消息文本的 IF 条件有什么问题
问题描述
我正在尝试创建一个脚本来从 Excel 文档中输入 SAP 中的事务。有时,某些事务需要执行不同的操作,我在下面的代码中对此进行了描述。
我已经尝试过else
, else if
, if
, 和if not
条件。我预计我的语法在某处不正确。
我希望我的 VBS 继续运行并根据 SAP 底部是否打印“无法交付订单(请参阅长文本)”执行一项或另一项操作,直到电子表格上没有更多行。
非常感谢任何帮助或建议。
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
session.findById("wnd[0]").maximize
Dim objExcel
Dim objSheet, intRow, i
Set objExcel = GetObject(,"Excel.Application")
Set objSheet = objExcel.ActiveWorkbook.ActiveSheet
For i = 2 to objSheet.UsedRange.Rows.Count
COL1 = Trim(CStr(objSheet.Cells(i, 1).Value)) 'ColumnA
COL2 = Trim(CStr(objSheet.Cells(i, 2).Value)) 'ColumnB
COL3 = Trim(CStr(objSheet.Cells(i, 3).Value)) 'ColumnC
COL4 = Trim(CStr(objSheet.Cells(i, 4).Value)) 'ColumnD
session.findById("wnd[0]/usr/ctxtLIKP-VSTEL").text = COL1
session.findById("wnd[0]/usr/ctxtLV50C-DATBI").text = COL3
session.findById("wnd[0]/usr/ctxtLV50C-VBELN").text = COL2
session.findById("wnd[0]/usr/ctxtLV50C-VBELN").caretPosition = 7
session.findById("wnd[0]/tbar[0]/btn[0]").press
' If sbar prints below message
If Session.FindById("wnd[0]/sbar").Text <> "Order cannot be delivered (see long text)" Then ...
session.findById("wnd[0]/tbar[0]/btn[3]").press
' Else save SAP transaction and restart until conclusion of spreadsheet
Else
session.findById("wnd[0]/tbar[0]/btn[11]").press
End If
Next
解决方案
对于初学者,您的代码没有提到要在 SAP 中输入的任何事务。例如 :
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nme32k" 'Request transaction ME32K
session.findById("wnd[0]").sendVKey 0 'Press 'enter'
session.findById("wnd[0]/usr/ctxtRM06E-EVRTN").Text = Col1 'Outline Agreement number
session.findById("wnd[0]").sendVKey 0 'Press 'enter'
您可以在 if = 'specific status bar text' 之后简单地添加您的代码(其他操作)
推荐阅读
- python - vbar 字形中的宽度选项不会在散景中自动调整
- java - 生成的 XSD 中的空行
- linux - 将环境变量传递给嵌套的子级
- vba - Word Vba 打印大量文件时出现问题
- ios - largeTitleDisplayMode 不能正常工作?
- logging - Rsyslog - 日志未显示在服务器上
- string - perl 从文件中删除字符串块并保存到文件
- node.js - RS-232c Digi 秤没有发送任何数据
- maven - 目标 org.apache.maven.plugins:maven-dependency-plugin:3.0.0:analyze-only 的执行分析失败:此功能需要 ASM7
- excel - 创建动态 CheckBox 变量