Я работаю над макросом, чтобы перейти в SAP и выбрать ячейки в столбце для извлечения в Excel. Теперь, если бы это было превосходно, это не было бы проблемой, так как я бы просто использовал цикл do для перемещения по столбцу, копируя по пути. Я нахожусь в SAP GUI, который совместим с VBA, и это немного отличается. Я записал сценарий того, как я щелкаю вниз по столбцу, чтобы увидеть, как меняется код. Это то, что я получил.
session.findById("wnd[0]").maximize
session.findById("wnd[0]/usr/lbl[12,13]").setFocus
session.findById("wnd[0]/usr/lbl[12,13]").caretPosition = 6
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/lbl[12,14]").setFocus
session.findById("wnd[0]/usr/lbl[12,14]").caretPosition = 4
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/lbl[12,15]").setFocus
session.findById("wnd[0]/usr/lbl[12,15]").caretPosition = 5
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/lbl[12,16]").setFocus
session.findById("wnd[0]/usr/lbl[12,16]").caretPosition = 5
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/lbl[12,17]").setFocus
session.findById("wnd[0]/usr/lbl[12,17]").caretPosition = 5
session.findById("wnd[0]").sendVKey 0
Вы можете видеть, что конкретное значение увеличивается с 13 до 17, когда я перемещаюсь вниз по столбцу. Я подумал, что мог бы включить цикл do, чтобы затем перемещаться по столбцу и копировать значения. Вот мой соответствующий код
i = 13
Do
session.findById("wnd[0]").maximize
Current_Batch = session.findById("wnd[0]/usr/lbl[12,i]").Text
session.findById("wnd[0]/usr/lbl[12,i]").caretPosition = 6
session.findById("wnd[0]").sendVKey 0
If Current_Batch = "" Then
Exit Do
End If
Cells(i - 11, 4) = Current_Batch
i = i + 1
Loop
Это, однако, не работает, так как не распознает i как переменную. Это дает мне ошибку 619 (не удалось найти идентификатор)
Кто-нибудь знает способ заставить эту работу?