Я создал макрос в VBA для нашей среды IBM iSeries / AS400 / green screen, который находит номера позиций в заказах на покупку, а затем меняет их цену и выходит из заказа на покупку.Внутри макроса есть цикл, используемый для анализа каждой строки заказа на покупку, а затем перехода на следующую страницу строк, если номер не найден на первой странице.Вот код для цикла:
'ItemNum and Price are entered by the user within Excel
Do Until IBMItemNum = ItemNum
If NumRow = 11 Then
'There are ten lines within purchase orders, after which one must page down
'to see the rest of the purchase order. This is where the problem occurs
autECLSession.autECLPS.SendKeys "[pagedn]"
NumRow = 1
End If
IBMItemNum = autECLSession.autECLPS.GetText(NumRow, 2, 5)
If IBMItemNum = ItemNum Then
autECLSession.autECLPS.SetCursorPos NumRow, 66
autECLSession.autECLPS.SendKeys Price
autECLSession.autECLPS.SendKeys "[field+]"
autECLSession.autECLPS.SendKeys "[enter]"
'After the item has been found and the price entered, the macro exits the PO
'Entering PageDown after the PO has been exited crashes the AS400 session
Exit Do
Else
'Check the next row
NumRow = NumRow + 1
End If
Loop
Этот макрос может успешно читать каждое число на первой странице заказа на покупку подряд, если и только если я удалю команду PageDown SendKeys из цикла.Однако, даже если ItemNum является первым IBMItemNum в PO, макрос не выйдет из цикла и переместится вниз (что также означает, что цикл повторяется более 10 раз).В моем коде чего-то не хватает для условия выхода?