2017-02-09 13 views
-2

У меня есть несколько книг excel. Я хочу активировать книгу, которая имеет название «Финал».Excel VBA: Как активировать книгу без ее полного имени?

Пример: У меня есть три открытых книги под названием «Workbook1.xlsx», «worKbook2.xlsm» и «workbookFinal.xlsx» одновременно.

Мой код VBA находится в «Macro.xlsm». Используя VBA, я хочу активировать книгу, в которой есть «Final». FYI .. все книги находятся в разных направлениях.

ответ

2

перебрать Workbooks коллекции до нахождения правильного имени книги:

Sub wbs() 
    Dim wb As Workbook 

    For Each wb In Workbooks 
     If InStr(wb.Name, "Final") > 0 Then 
      wb.Activate 
      Exit For 
     End If 
    Next 
End Sub 
+0

Хотя это работает только, если открыты все Workbooks в том же экземпляре Excel – gizlmo

+0

LOL, даже выбрал тот же 'wb' переменную :) –

+0

Вы, ребята, слишком добры, я бы голосовать закрыть это! ;) @ShaiRado: 'wb' для книги не удивительно! Но вы были быстрее, чем user3598756, который становится медленнее! : p – R3uK

2

Попробуйте следующий код, используя Like Оператора диких карт *.

Option Explicit 

Sub FindFinalWorkbook() 

Dim wb As Workbook 

' loop through all open workbooks 
For Each wb In Application.Workbooks 
    If wb.Name Like "*Final*" Then '< -- check if workbook name is Like *Final* 
     wb.Activate 
     Exit For 
    End If 
Next wb 

End Sub 
+0

смешно, что выше всего на один из двух одинаковых ответов ... – user3598756

Смежные вопросы