Приведенный ниже код открывает определенный файл в определенной папке, но не конкретный лист:

Sub test() 
  Dim myfile As String           
  myfile = Cells(1, 1).Value & Cells(1, 2).Value & Cells(1, 3).Value           
  Application.Workbooks.Open Filename:=myfile          
End Sub 

Как работает код:

  • Укажите путь в ячейке A1 D:\My Data/
  • Подкаталог упоминания в Cell B1 Kitchen/
  • Упоминание имени файла в ячейке C1 Test.xls

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

Мне нужно еще одно дополнение к приведенному выше коду, в котором если имя листа указано в Examples D1, макрос должен открыть рабочий лист Test и перейти к Примерам имени листа.

1 ответ1

1

Рабочая тетрадь.Open не поддерживает указание имени листа.

Вы должны переключиться на свой лист вручную с помощью Workbooks.Sheets("Sheet1").Activate

Sub test()

    Dim myFilePath As String
    Dim myWorkbook As Workbook

    myFilePath = Cells(1, 1).Value & Cells(1, 2).Value & Cells(1, 3).Value
    mySheetname = Cells(1, 4).Value

    Set myWorkbook = Application.Workbooks.Open(Filename:=myFilePath)
    On Error Resume Next
    myWorkbook.Sheets(Cstr(mySheetname)).Activate
    On Error GoTo 0

End Sub

Или укороченный

Sub test()
    Set myWorkbook = Application.Workbooks.Open(Filename:=[A1] & [B1] & [C1])
    On Error Resume Next
    myWorkbook.Sheets(Cstr([D1])).Activate
    On Error GoTo 0
End Sub

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