Nazwa skoroszytu VBA (pobierz, ustaw, bez rozszerzenia)

Ten samouczek pokaże, jak uzyskać i ustawić nazwę skoroszytu w VBA.

Możemy uzyskać lub ustawić nazwę aktywnego skoroszytu w VBA lub przejść przez wszystkie otwarte skoroszyty w programie Excel i uzyskać lub ustawić nazwę każdego z nich za pomocą pętli VBA.

Pobierz nazwę skoroszytu

Aby uzyskać nazwę aktywnego skoroszytu, musimy użyć właściwości name obiektu workbooks.

12345 Sub GetWorkbookName()Dim strWBName As StringstrWBName = ActiveWorkbook.NameMsgBox nazwa strWBNapis końcowy

Gdybyśmy mieli uruchomić powyższy kod, na ekranie pojawiłoby się okno komunikatu z nazwą aktywnego skoroszytu.

Aby przejść przez wszystkie aktywne skoroszyty i zwrócić nazwy skoroszytów do programu Excel, możemy uruchomić następujący kod:

1234567 Sub GetWorkbookNames()Dim wb jako skoroszytDla każdego wb w skoroszytachAktywna Komórka = wb.NazwaActiveCell.Offset(1, 0).WybierzNastępnyNapis końcowy

Powyższe przykłady będą zawierać rozszerzenie pliku (np. xlsx). Jeśli nie chcesz dołączać rozszerzenia, istnieje kilka metod, których możemy użyć, aby uzyskać tylko nazwę pliku skoroszytu.

Uzyskaj nazwę skoroszytu bez rozszerzenia

Możemy użyć funkcji LEWO i INSTR, aby usunąć dowolne znaki po kropce w nazwie pliku:

12345 Sub GetWorkbookName()Dim strWBName As StringstrWBName = Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)MsgBox nazwa strWBNapis końcowy

Możemy użyć funkcji LEWO i LEN, aby usunąć 5 znaków z końca nazwy pliku:

12345 Sub GetWorkbookName()Dim strWBName As StringstrWBName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 55)MsgBox nazwa strWBNapis końcowy

Ustawianie nazwy skoroszytu

Aby ustawić nazwę skoroszytu w VBA, nadal używamy właściwości Name skoroszytu, jednak nie możemy użyć tej metody do zmiany nazwy aktywnego skoroszytu. Wynika to z faktu, że skoroszyt aktywny jest otwarty i wystąpi błąd dostępu do pliku. Aby temu zaradzić, możemy zapisać plik pod nową nazwą, a następnie usunąć stary plik.

12345678910 Public Sub SetWorkbookName()Dim strPath As StringDim strNewName jako ciągDim strOldName jako ciągstrOldName = ActiveWorkbook.NamestrNewName = InputBox("Wprowadź nową nazwę skoroszytu")strPath = AktywnyKsiążka.ŚcieżkaActiveWorkbook.SaveAs strPath & "/" & strNewNameZabij strPath & "/" i strOldNameNapis końcowy

Aby zmienić nazwę skoroszytu, który nie jest otwarty, możemy użyć metody Name.

123 Public Sub Zmień nazwę Skoroszytu()Nazwij „C:\Dane\MójPlik.xlsx” jako „C:\Dane\MójNowyPlik.xlsx”Napis końcowy

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave