2017-02-09 2 views
-2

Ich habe mehrere Excel-Arbeitsmappen geöffnet. Ich möchte eine Arbeitsmappe aktivieren, die "Final" in ihrem Namen hat.Excel VBA: Wie Sie eine Arbeitsmappe ohne ihren vollständigen Namen aktivieren?

Beispiel: Ich habe drei offene Arbeitsmappen namens "Workbook1.xlsx", "worKbook2.xlsm" und "workbookFinal.xlsx" gleichzeitig geöffnet.

Mein VBA-Code ist in "Macro.xlsm". Mit VBA möchte ich die Arbeitsmappe aktivieren, die "Final" enthält. FYI .. alle Arbeitsmappen sind in verschiedenen Pfaden.

Antwort

2

Schleife durch Workbooks Sammlung, bis den richtigen Namen Arbeitsmappe zu finden:

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

Obwohl dies funktioniert nur, wenn alle Arbeitsmappen in derselben Excel-Instanz – gizlmo

+0

LOL, wählte sogar die gleiche 'wb' Variable :) –

+0

Ihr seid zu freundlich, geöffnet werden müsste ich Abstimmung diese eine schließen! ;) @Shairado: 'wb' für Arbeitsmappe ist nicht so überraschend! Aber du warst schneller als user3598756, der langsamer wird! : p – R3uK

2

den Code unten Versuchen Sie, mit dem Like Operator mit der Wild-Card-*.

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

ist lustig, dass nur auf eine von zwei identischen Antworten upvote ... – user3598756

Verwandte Themen