设置宏需要Ibm主机帮助 [英] Ibm mainframe help required to set macro
本文介绍了设置宏需要Ibm主机帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Sub Texas()
Dim wks As Workbook
Dim app As Object
On Error Resume Next
Dim i As Integer
Sheets("TEXAS").Activate
Range("A1:D1000000").ClearContents
Set app = GetObject("RIBM")
Set app = GetObject("RIBM")
If Trim(app.getdisplaytext(1, 32, 26)) = "SM972 Main Panel" Then
app.MoveCursor 21, 7
app.TransmitANSI "1"
app.TransmitTerminalKey 289
Application.Wait (Now() + TimeSerial(0, 0, 1))
app.MoveCursor 1, 1
app.TransmitANSI "row1"
app.TransmitTerminalKey 289
Application.Wait (Now() + TimeSerial(0, 0, 1))
app.MoveCursor 19, 31
app.TransmitANSI "1"
app.TransmitTerminalKey 289
Application.Wait (Now() + TimeSerial(0, 0, 1))
app.MoveCursor 20, 8
app.TransmitANSI "1"
app.TransmitTerminalKey 289
Application.Wait (Now() + TimeSerial(0, 0, 1))
Range("A2").Activate
i = 3
'Do Until Trim(app.getdisplaytext(i, 69, 10)) = "PAGE: 1"
Do Until Trim(app.IsEmpty(i, 1, 11))"GETTING ERROR here
'Do Until (app.IsEmpty(i, 20, 5))
ActiveCell.Offset(0, 0).Value = Trim(app.getdisplaytext(i, 1, 11))
ActiveCell.Offset(0, 1).Value = Trim(app.getdisplaytext(i, 4, 11))
ActiveCell.Offset(0, 2).Value = Trim(app.getdisplaytext(i, 18, 5))
ActiveCell.Offset(0, 3).Value = Trim(app.getdisplaytext(i, 41, 1))
ActiveCell.Offset(0, 4).Value = Trim(app.getdisplaytext(i, 45, 7))
i = i + 1
i = 21 Then
i = 3
app.TransmitTerminalKey 385
Application.Wait (Now() + TimeSerial(0, 0, 1))
End If
ActiveCell.Offset(1, 0).Select
Loop
Else
MsgBox "Please goto SELECTION MENU Screen..."
End If
app.TransmitTerminalKey 380
Application.Wait (Now() + TimeSerial(0, 0, 1))
app.TransmitTerminalKey 380
Application.Wait (Now() + TimeSerial(0, 0, 1))
app.TransmitTerminalKey 380
Application.Wait (Now() + TimeSerial(0, 0, 1))
app.MoveCursor 1, 1
app.TransmitANSI "ap"
app.TransmitTerminalKey 289
Application.Wait (Now() + TimeSerial(0, 0, 1))
End Sub
我尝试了什么:
i想要在范围为空时停止循环。
What I have tried:
i want to stop the loop when the range is blank.
推荐答案
正如你所提到的,你在这一行中有一个错误:
As you mentioned, you've got an error in this line:
Do Until Trim(app.IsEmpty(i, 1, 11))"GETTING ERROR here
因为 Do ... Loop
需要测试是否满足条件。例如:
because Do ... Loop
needs to test if condition is met. For example:
Do Until Trim(app.IsEmpty(i, 1, 11))<>"" 'returns True/False
Do Until app.IsEmpty(i, 1, 11) 'returns True/False
我很确定 isEmpty
方法只需要一个参数: isEmpty(var)
参见 IBM文档 [ ^ ]。
I'm pretty sure that isEmpty
method requires only one parameter: isEmpty(var)
See IBM documentation[^].
这篇关于设置宏需要Ibm主机帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文