Открытие двух отдельных книг Excel из третьего - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь автоматизировать то, что я делаю каждый день, и я не захожу слишком далеко.

Мы запускаем отчет из системы управления персоналом каждый день, а затем сравниваем идентификаторы с 1) списком идентификаторовмы работаем над этими двумя неделями 2) список идентификаторов, с которыми мы работали последние две недели 3) отчет, который вышел вчера - так, чтобы любые, которых не было в первых двух списках, но которые были получены кем-то вчера, помечаются.

Я пишу этот код в отдельной таблице, чтобы она оставалась каждый день, а загруженная таблица обновлялась.

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

Все файлы уже открыты.

Итак, первый файл - это файл макроса, который просто позволяетдругие файлы для выбора.

Второй файл - это документ Excel, который поступает из системы управления персоналом.Он имеет «Empl ID» в качестве первого столбца от A2 до около A500 время от времени.

Третий файл - это документ Excel, который детализирует идентификаторы, над которыми мы работаем в эти две недели, и имеет «Emplid» в качествепервый столбец.

С помощью приведенного ниже кода я не могу заставить работать третий документ Excel, я просто получаю ошибку времени выполнения 9: нижний индекс выходит за пределы диапазона.

Если я добавлю часы дляРабочие тетради (txtMSR) Лист «MSR» можно увидеть как «Элемент 1» в листах, и его название MSR.

Любая помощь будет приветствоваться.

Dim txtWorkbook As String
Dim vLoop, vLoop2 As Integer
Dim vEID As String
Dim txtMSR As String
Dim txtWork2 As String

'Get workbook name less the .xls bit
'C13 has ps.xls in it

txtWorkbook = Left(Range("C13"), InStr(Range("C13"), ".xls") - 1)

'Next check who has the employees on this MSR
'Set counters to "zero"
vLoop = 2
vLoop2 = 2

'C7 has MSR Fortnight 20190419-20190502.xlsm in it   
txtMSR = Left(Range("C7"), InStr(Range("C7"), ".xlsm") - 1)

Do Until Workbooks(txtWorkbook).Sheets("ps").Range("A" & vLoop).Text = ""
    vPMKeyS = Workbooks(txtWorkbook).Sheets("ps").Range("A" & vLoop).Value
    ```
    'The line below produces the error.  
    ```
    Do Until Workbooks(txtMSR).Sheets("MSR").Range("A" & vLoop2).Text = ""
       If (vPMKeyS = Workbooks(txtMSR).Sheets("ps").Range("A" & vLoop2).Value) Then
            Workbooks(txtWorkbook).Sheets("ps").Range("N1").Text = "Y"
       End If
       vLoop2 = vLoop2 + 1
    Loop
    vLoop = vLoop + 1
Loop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...