Индекс вне диапазона (ошибка 9) - Windows (имя). Активировать - PullRequest
0 голосов
/ 24 сентября 2019

Продолжайте получать 'Subscript out of range' при попытке запустить мой макрос VBA.Цель макроса - активировать рабочую книгу2 и импортировать ее в рабочую книгу1.Первоначально это работало, когда макрос был сохранен как личная книга макросов, но так как я хотел, чтобы workbook1 был доступен другим, я перешел на макрос ThisWorkbook.

Я попытался отладить, показав книгу. Имя до и после отображения ошибки, поэтому я нашел именно ту строку, на которой происходит сбой.(Windows(WBN.Name).Activate)

MsgBox также отображает правильное имя файла, поэтому убедитесь, что нет ошибок с неправильным именем.

Расширение файла также правильное.

Также пытались использовать Workbooks().Activate

Dim MainWorkbook As String
Dim WBN As Object

MainWorkbook = ActiveWorkbook.Name
Personal = "PERSONAL.XLSB"

For Each WBN In Application.Workbooks()
    WBN.Save
    If WBN.Name <> MainWorkbook Then
        If WBN.Name <> Personal Then
            MsgBox WBN.Name
            Windows(WBN.Name).Activate
            Sheets("Data Entry").Copy_
            After:=Workbooks("RER.xlsm").Sheets(1)
        End If
    End If
Next

Ожидаемый результат - книга2 импортируется в книгу1.Вместо этого я получаю подписку вне диапазона.

1 Ответ

0 голосов
/ 24 сентября 2019

Обычно нет необходимости Activate.

Использовать объект Workbook, который у вас уже есть: WBN.

If WBN.Name <> Personal Then
     WBN.Sheets("Data Entry").Copy_
         After:=Workbooks("RER.xlsm").Sheets(1)
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...