HostExplorer 메인 프레임 터미널 에뮬레이터로 작업하고 있습니다. 내 VBA 지식은 다른 매크로를 만들기 위해 온라인에서 찾은 정보 비트를 결합하여 만들어졌습니다.HostExplorer 메인 프레임 에뮬레이터 화면의 Excel 텍스트 입력
메인 프레임에 인보이스를 입력하고 몇 개의 화면간에 이동하고 링크를 생성하는 정보를 입력 한 다음 해당 링크를 사용하여 컴퓨터의 미리 정해진 폴더에 파일을 저장하는 매크로를 만듭니다.
입력 정보 부분에 붙어 있습니다. 마지막 화면으로 이동 한 후 메인 프레임의 특정 필드에 텍스트를 입력해야합니다.
나는 화면에서 위치를 식별하고이를 사용하여 변수를 만드는 방법을 알고 있습니다.
어떻게하면 역순으로 할 수 있습니까? 변수 (또는 임의의 문자)에있는 문자열을 화면의 특정 위치에 입력 할 수 있습니까?
Sub MiscFileDownload()
Dim HostExplorer As Object
Dim MyHost As Object
Dim Rc As Integer
On Error GoTo GenericErrorHandler
Set HostExplorer = CreateObject("HostExplorer") ' Initialize HostExplorer Object
Set MyHost = HostExplorer.HostFromProfile("*****") ' Set object for the desired session
If MyHost Is Nothing Then GoTo NoSession
Dim ColALastRow As Long
ColALastRow = Worksheets(1).Columns("A:A").End(xlDown).Row
Dim Pro As String
Dim MiscTest As String
Dim iPSUpdateTimeout
'enter pro then F2 and F9
For i = 2 To ColALastRow
Pro = Worksheets(1).Cells(i, 1).Value
Rc = MyHost.Keys(Pro)
iPSUpdateTimeout = 60
MyHost.RunCmd ("Enter")
Rc = MyHost.WaitPSUpdated(iPSUpdateTimeout, True)
If Rc <> 0 Then GoTo OnWaitPSUpdatedTimeout
iPSUpdateTimeout = 60
MyHost.RunCmd ("PF2")
Rc = MyHost.WaitPSUpdated(iPSUpdateTimeout, True)
If Rc <> 0 Then GoTo OnWaitPSUpdatedTimeout
iPSUpdateTimeout = 60
MyHost.RunCmd ("PF9")
Rc = MyHost.WaitPSUpdated(iPSUpdateTimeout, True)
If Rc <> 0 Then GoTo OnWaitPSUpdatedTimeout
MiscTest = Mid(MyHost.Text, 1466, [3])
If MiscTest = "YES" Then 'test for Misc if true move to next screen
Rc = MyHost.Keys("v")
Rc = MyHost.WaitPSUpdated(iPSUpdateTimeout, True)
If Rc <> 0 Then GoTo OnWaitPSUpdatedTimeout
MyHost.RunCmd ("Tab")
Rc = MyHost.WaitPSUpdated(iPSUpdateTimeout, True)
If Rc <> 0 Then GoTo OnWaitPSUpdatedTimeout
Rc = MyHost.Keys("v")
Rc = MyHost.WaitPSUpdated(iPSUpdateTimeout, True)
If Rc <> 0 Then GoTo OnWaitPSUpdatedTimeout
MyHost.RunCmd ("Tab")
Rc = MyHost.WaitPSUpdated(iPSUpdateTimeout, True)
If Rc <> 0 Then GoTo OnWaitPSUpdatedTimeout
Else
MyHost.RunCmd ("PF1")
Rc = MyHost.WaitPSUpdated(iPSUpdateTimeout, True)
If Rc <> 0 Then GoTo OnWaitPSUpdatedTimeout
MyHost.RunCmd ("PF1")
Rc = MyHost.WaitPSUpdated(iPSUpdateTimeout, True)
If Rc <> 0 Then GoTo OnWaitPSUpdatedTimeout
GoTo NextIteration
End If
NextIteration:
Next i
Exit Sub
단순히 텍스트를 입력 하시겠습니까? 나는 ur 호스트가 무엇인지 모르겠다. 그러나 key() 메서드를 사용하여 입력 할 수있는 것처럼 보인다 !! Like : MyHost.Keys ("thevalueyouwanttoType") –
MyHost.Keys ("thevalueyouwanttoType")는 문자열을 입력하는 데 작동하지만 의미가있는 경우 특정 위치에 입력하는 방법을 알아야합니까? 예를 들어, MiscTest = Mid (MyHost.Text, 1466, [3])는 해당 변수를 "location?"에서 시작하는 문자열과 동일하게 설정합니다. 내 hostexplorer에 1466입니다. Myhost.keys를 사용하기 전에 특정 위치로 어떻게 이동할 수 있습니까? – user2996913
http://vbcity.com/forums/t/42741.aspx 도움이 될 수 있습니다. –