Импортировать и экспортировать данные, чтобы отличиться от размышлений
У меня были некоторые проблемы со следующим сценарием. Цель состоит в том, чтобы скопировать номер счета из электронной таблицы Excel и вставить его в отражения, а затем отправить и подтвердить (введите, f9). После этого мне нужно скопировать некоторые данные из отражений и вставить их в электронную таблицу, перейти к следующей строке и выполнить цикл до тех пор, пока не останется больше записей.
У меня есть ограничение на то, что я могу использовать VBA только с помощью отражений. после прохождения я обнаружил, что получаю ошибки в цикле, и я получил несколько ошибок, говорящих о том, что мои переменные не могут выполнять определенные действия... информация представляет собой смесь цифр и букв и, как таковая. Я бы предпочел сохранить это как строку.
Я не пользуюсь VBA более 8 лет, поэтому я немного ржав и буду признателен за любую помощь.
ура
ABT
' Generated by Attachmate Reflection 2014 (15.6.797.0)
' Generated by the Macro Recorder on 05/12/2017 14:32:42
'---------------------------------------------------------------------
' Common variable declarations
Dim ibmCurrentTerminal As IbmTerminal
Dim ibmCurrentScreen As IbmScreen
Dim hiddenTextEntry As String
Dim excelApp As Object
Dim inputaccountNumber As String 'To store a value for the input account number
Dim returnValue As Integer
Dim timeout As Integer
Dim I As Integer
Dim MSForms_DataObject As Object
Set MSForms_DataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
Dim clipboard As MSForms.DataObject
Set clipboard = New MSForms.DataObject
timeout = 15000
Set excelApp = GetObject(, "Excel.Application")
Set excelApp = GetObject("\\Server1\ProjectA.xlsx")
Set ibmCurrentTerminal = ThisFrame.SelectedView.Control
Set ibmCurrentScreen = ibmCurrentTerminal.screen
'---------------------------------------------------------------------
'1. CPAS Already on correct Command
'Open relevant Spreadsheets
'Set Counter variable
I = 2
inputaccountNumber = excelApp.ActiveSheet.Range("A2").GetText
clipboard = excelApp.ActiveSheet.Range("A2").GetText
'Create loop to copy selected cell contents for account Lis: LOOP START (Do while loop?)
Do While inputaccountNumber > 0
'b. Paste account number into cpas search box
With Session
clipboard.Copy y.cells(Rows.Count, "B" & I).End(xlUp).offset(1, 0)
'c. Use "Enter" or "Return" Command
ibmCurrentScreen.SendControlKey (ControlKeyCode_Transmit)
returnValue = ibmCurrentScreen.WaitForKeyboardEnabled(timeout, 0)
'Wait for cursor to be in position before continuing
returnValue = ibmCurrentScreen.WaitForCursor1(timeout, 1, 1)
If (returnValue <> ReturnCode_Success) Then
Err.Raise 5001, "WaitForCursor1", "Timeout waiting for cursor position.", "VBAHelp.chm", "5001"
End If
'Use F9 to proceed
ibmCurrentScreen.SendControlKey (ControlKeyCode_F9)
'e.Copy "paidToDate"
clipboard = .GetText(4, 68, 4, 76)
'ii. Paste "paidToDate" into C 'Tab across
clipboard.Copy y.cells(Rows.Count, "C" & I).End(xlUp).offset(1, 0)
'f.Copy "billToDate"
clipboard = .GetText(5, 68, 5, 76)
'iii. Paste "billToDate" into D 'Tab across
clipboard.Copy y.cells(Rows.Count, "D" & I).End(xlUp).offset(1, 0)
'g.Copy "nextReviewDate "
clipboard = .GetText(7, 52, 7, 60)
'iv. Paste "nextReviewDate " into E 'Tab across
clipboard.Copy y.cells(Rows.Count, "E" & I).End(xlUp).offset(1, 0)
'h.Copy "reviewBasis "
clipboard = .GetText(6, 44, 6, 46)
'v. Paste "reviewBasis " into F'Tab across
clipboard.Copy y.cells(Rows.Count, "F" & I).End(xlUp).offset(1, 0)
'i.Copy "benefit"
clipboard = .GetText(5, 44, 5, 49)
'vi. Paste "benefit" into G
clipboard.Copy y.cells(Rows.Count, "G" & I).End(xlUp).offset(1, 0)
Application.CutCopyMode = False
'k. Use "F12" on cpas to return to home screen
ibmCurrentScreen.SendControlKey (ControlKeyCode_F9)
'add to count integer
I = I + 1
'Copy next account number
inputaccountNumber = excelApp.ActiveSheet.Range("A" & I).Copy
clipboard = excelApp.ActiveSheet.Range("A2").GetText
'3. Next line on account number list spreadsheet (LOOP END)
Loop
End With
End Sub