При попытке выбрать рабочую книгу, а затем ячейку на листе в этой рабочей книге я получаю сообщение об ошибке VBA (ошибка Run-time error '9': Subscript out of range).

this_workbook верен, а копирование и вставка вывода в Windows Run приводит к открытию книги. data_worksheet также является правильным.

this_workbook = ThisWorkbook.Path & "\" & ThisWorkbook.Name

Debug.Print "Workbook name - " & this_workbook & vbCrLf
Workbooks(this_workbook).Sheets(data_worksheet).Range("A1").Select

Кто-нибудь знает, что я делаю не так?

1 ответ1

1

Вы не можете выбрать диапазон на рабочем листе, который не активен.

Кроме того, вызов с использованием Workbook(this_workbook) чрезмерно усложняет ваш код.

Попробуйте заменить ваш код следующим (Предполагается, что data_worksheet представляет собой имя или номер листа):

With Thisworkbook.Sheets(data_worksheet).
    .Activate
    .Range("A1").select
End with

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .