Vba: jak uzyskać listę wszystkich otwartych skoroszytów


Możesz użyć pętli For Each w VBA, aby uzyskać listę wszystkich otwartych skoroszytów programu Excel.

Oto typowy sposób na zrobienie tego w praktyce:

 Sub ListAllOpenWorkbooks()

Dim wbName As String
Dim wb As Workbook

'add each open workbook to message box
For Each wb In Application.Workbooks
    wbName = wbName & wb.Name & vbCrLf
Next

'display message box with all open workbooks
MsgBox wbName

End Sub

To konkretne makro wygeneruje okno komunikatu zawierające listę wszystkich otwartych skoroszytów programu Excel.

Poniższy przykład pokazuje, jak w praktyce wykorzystać to makro.

Przykład: Uzyskaj listę wszystkich otwartych skoroszytów za pomocą języka VBA

Załóżmy, że aktualnie otwarte są następujące trzy skoroszyty programu Excel:

  • baseball_data.xlsx
  • football_data.xlsx
  • hockey_data.xlsx

Załóżmy, że chcemy użyć języka VBA do wyświetlenia listy nazw wszystkich otwartych skoroszytów.

W tym celu możemy utworzyć następujące makro:

 Sub ListAllOpenWorkbooks()

Dim wbName As String
Dim wb As Workbook

'add each open workbook to message box
For Each wb In Application.Workbooks
    wbName = wbName & wb.Name & vbCrLf
Next

'display message box with all open workbooks
MsgBox wbName

End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

W oknie komunikatu wyświetlane są nazwy każdego otwartego skoroszytu, a każdy unikatowy skoroszyt znajduje się w osobnym wierszu.

Zauważ, że użyliśmy stałej vbCrLf w pętli For Each , aby wstawić znak powrotu karetki, który przenosi kursor do następnego wiersza.

Dzięki temu mogliśmy wyświetlić listę każdego otwartego skoroszytu w osobnym wierszu w oknie komunikatu.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

Jak zmienić nazwę pliku za pomocą VBA
Jak wyświetlić listę plików w folderze za pomocą VBA
Jak otworzyć wszystkie pliki w folderze za pomocą VBA
Jak sprawdzić, czy plik istnieje za pomocą VBA

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *