Я настраиваю макрос, который открывает разные веб-сайты, в зависимости от того, какие ячейки идентификатора сделки не пустые в таблице Excel. Он создаст 4 объекта и сохранит объекты в коллекции. Я выбрал 4 в качестве произвольного числа, потому что мне никогда не понадобится больше 2, но я создал больше на всякий случай.
Макрос циклически просматривает таблицу Excel и выбирает столько идентификаторов сделок, сколько необходимо (идентификаторы сделок добавляются к URL-адресу для перехода на разные сайты), но когда я запускаю макрос, я получаю сообщение об ошибке "Переменная объекта или переменная блока не установлена "в выделенной строке ниже. Пожалуйста, помогите, так как я не очень силен в VBA и учусь делать все возможное, чтобы автоматизировать некоторые вещи на работе
Я относительно новичок в VBA, поэтому я не знаю, что делать, чтобы это исправить. Любая помощь по этому вопросу будет принята с благодарностью. Спасибо
Sub TransactionMatching()
Dim first_day As String
Dim ieapp As Object
Dim ieapp2 As Object
Dim ieapp3 As Object
Dim ieapp4 As Object
' collection to hold deal names
Dim dealnameArray As New Collection
' collection to hold deal IDs
Dim dealIDArray As New Collection
' collection to hold required ieapp objects
Dim totalDealObjectArray As New Collection
' add all ieapp objects to the collection
totalDealObjectArray.Add ieapp
totalDealObjectArray.Add ieapp2
totalDealObjectArray.Add ieapp3
totalDealObjectArray.Add ieapp4
Windows("transaction_matching.xlsm").Activate
' loop through each row in the excel sheet and add the deal names and deal IDs...
' ...with check marks nect to them to their respective collections
For i = 5 To 51
If IsEmpty(Range("C" & i).Value) = False Then
dealnameArray.Add (Range("A" & i).Value)
dealIDArray.Add (Range("B" & i).Value)
End If
Next
'get the required number of objects from the ieapp object collection
For i = 1 To dealnameArray.Count - 1
' set each object in ieapp object collection to a new internet explorer object
Set totalDealObjectArray(i) = New InternetExplorerMedium
totalDealObjectArray(i).Visible = True
' define the last business day
lastDay = DateSerial(Year(Date), Month(Date), 0)
' define the first day of the previous month
first_day = lastDay - Day(lastDay) + 1
With totalDealObjectArray(i)
.navigate "http://website" & dealIDArray(i)
Application.DisplayFullScreen = True
Call busy((totalDealObjectArray(i)))
Call DoThings((totalDealObjectArray(i)))
End With
Next
Application.WindowState = xlNormal
Application.WindowState = xlMaximized
End Sub