Конец без использования Excel и терминала IBM 3270 - PullRequest
0 голосов
/ 24 августа 2018

Я работаю над макросом, чтобы получить данные о квитанциях, и мне нужно только найти количество для сегодняшних квитанций.Используя терминал IBM, я открываю рабочий лист Excel, а затем перехожу к IBM, чтобы перейти к нужному мне экрану, а затем посмотреть на дату на экране и сопоставить ее с датой получения.если сегодняшняя дата не совпадает с датой получения на первой странице, тогда мне нужно, чтобы макрос нажимал ввод, а затем выполнял поиск на второй странице для соответствующей даты и т. д., пока даты не совпадают или если они никогда не останавливаются после даты полученияпустоМой код ниже.Не уверен, где функция open не позволяет завершить код.Я новичок и понятия не имею о форматировании кода, заранее извиняюсь.

Спасибо за любую помощь, которую вы предоставляете.

Sub RMBR()



   Dim infile As String

   Dim part As String * 19, COMMENT As String * 7, COMMENT2 As String * 2

   Dim TDATE As String * 7, PLANT As String * 1

   Dim source As String

   Dim SELECTION As Integer, i As Integer, c As String

   Dim Result As Single

   Dim excel As Object

   Dim ACELL As Single, BCELL As Single, CCELL As Single, dcell As Single

   Dim Verify As Single



infile = InputBox$("input FILE NAME INCLUDING PATH?", "FILE NAME", "C:\CFILES\rmbr.XLSX")

TDATE = InputBox$("Input Status", "TDATE", "CURRENT")



i = 2

        Set excel = CreateObject("EXCEL.APPLICATION")



       excel.Visible = True

        excel.Workbooks.Open FileName:=infile

        Verify = MsgBox("IS THIS THE CORRECT SPREADSHEET?", 4, "VERIFY SPREADSHEET")



    ACELL = "A2"

    BCELL = "b2"

    CCELL = "c2"

    dcell = "d2"



        excel.Range("A1").Select

        excel.activecell.FormulaR1C1 = "PARTNO"



        excel.Range("B1").Select

        excel.activecell.FormulaR1C1 = "RMBR QTY"



        excel.Range("C1").Select

        excel.activecell.FormulaR1C1 = " "



        excel.Range("D1").Select

        excel.activecell.FormulaR1C1 = "TODAY'S DATE"



            excel.Range(ACELL).Select

            part = excel.activecell.FormulaR1C1



            excel.Range(BCELL).Select

            PLANT = excel.activecell.FormulaR1C1



            excel.Range(CCELL).Select

            COMMENT = excel.activecell.FormulaR1C1



            excel.Range(dcell).Select

           COMMENT2 = excel.activecell.FormulaR1C1


         Do Until partnumber = "                "



With Session

        .TransmitTerminalKey rcIBMClearKey

        .WaitForEvent rcKbdEnabled, "30", "0", 1, 1

        .WaitForEvent rcEnterPos, "30", "0", 1, 1

        .TransmitANSI "RMBR"

        .TransmitTerminalKey rcIBMEnterKey

        .WaitForEvent rcKbdEnabled, "30", "0", 1, 1

        '.WaitForEvent rcEnterPos, "30", "0", 2, 6

        .WaitForDisplayString "FN:", "30", 2, 2

        .MoveCursor 4, 11

         .TransmitANSI part

        .TransmitTerminalKey rcIBMEnterKey

        .WaitForEvent rcKbdEnabled, "30", "0", 1, 1



        Date = .GetDisplayText(4, 73, 8)

        RIP.Date = .GetDisplayText(9, 73, 8)

        Dim n As Integer



        For n = 9 To 22

            Do Until Date = RIP.Date

            Date = .GetDisplayText(9, 73, 8)

            RIP.Date = .GetDisplayText(n, 73, 8)

            Loop

            If Date = RIP.Date Then

            Result = .GetDisplayText(n, 32, 6)

            excel.Range(BCELL).Select

            excel.activecell.FormulaR1C1 = Result

            End If

            If Date <> RIP.Date Then

            .TransmitTerminalKey rcIBMEnterKey

            End If

            Do Until Date = RIP.Date

            Date = .GetDisplayText(9, 73, 8)

            RIP.Date = .GetDisplayText(n, 73, 8)

            Loop

            Do Until RIP.Date = "        "

            Loop





          i = i + 1



        c = Trim$(Str$(i))



        ACELL = "A" + c

        BCELL = "B" + c

        CCELL = "C" + c



            excel.Range(ACELL).Select

            part = excel.activecell.FormulaR1C1



            excel.Range(BCELL).Select

            PLANT = excel.activecell.FormulaR1C1



            excel.Range(CCELL).Select

            COMMENT = excel.activecell.FormulaR1C1



            excel.Range(dcell).Select

            COMMENT2 = excel.activecell.FormulaR1C1



End With


End Sub
...