VBA Praca ze skoroszytami (obiekt skoroszytu)

Ten przewodnik wprowadzi Cię w pracę z Obiekt skoroszytu w VBA.

Obiekt skoroszytu

Po pierwsze, aby wchodzić w interakcję ze skoroszytami w VBA, musisz zrozumieć Obiekt skoroszytu.

Za pomocą obiektu workbook możesz odwoływać się do skoroszytów według ich nazw w następujący sposób:

1 Skoroszyty("Książka2.xlsm").Aktywuj

Jednak ten kod będzie działał tylko wtedy, gdy skoroszyt jest otwarty. Jeśli skoroszyt jest zamknięty, musisz podać pełną ścieżkę skoroszytu:

1 Workbooks.Open ("C:\Users\StevePC2\Downloads\book2.xlsm")

Zamiast wpisywać pełną ścieżkę, jeśli żądany skoroszyt znajduje się w tym samym katalogu, co skoroszyt, w którym jest przechowywany twój kod, możesz użyć tego kodu wiersza, aby otworzyć skoroszyt:

1 Workbooks.Open (ThisWorkbook.Path & "\book2.xlsm")

Wykorzystuje to obiekt ThisWorkbook, który omówimy w następnej sekcji.

Numer indeksu skoroszytu

Na koniec możesz odwoływać się do skoroszytów według ich "Numeru indeksu". Numer indeksu skoroszytu odpowiada kolejności otwierania skoroszytu (technicznie jest to pozycja skoroszytu w kolekcji skoroszytów).

1 Skoroszyty(1).Aktywuj

Jest to przydatne, jeśli chcesz na przykład zamknąć pierwszy (lub ostatni) otwarty skoroszyt.

Aktywuj skoroszyt, ActiveWorkbook i ThisWorkbook

Jeśli skoroszyt jest NIEAKTYWNY, możesz uzyskać dostęp do obiektów skoroszytu w następujący sposób:

1 Skoroszyty("Książka2.xlsm").Arkusze("Arkusz1").Range("A1").value = 1

Jeśli jednak skoroszyt jest aktywny, możesz pominąć obiekt skoroszytu:

1 Arkusze("Arkusz1").Zakres("A1").value = 1

A jeśli chcesz wchodzić w interakcję z aktywnym arkuszem skoroszytu, możesz również pominąć obiekt arkuszy:

1 Zakres("A1").wartość = 1

Aktywuj skoroszyt

Aby aktywować skoroszyt, użyj Aktywuj metodę.

1 Skoroszyty("Książka2.xlsm").Aktywuj

Teraz możesz wchodzić w interakcje z obiektami Book2 bez wyraźnego podawania nazwy skoroszytu.

Aktywny zeszyt

ten Aktywny zeszyt obiekt zawsze odnoszą się do aktywnego skoroszytu. Jest to przydatne, jeśli chcesz przypisać ActiveWorkbook do zmiennej do późniejszego użycia.

12 Dim wb jako skoroszytUstaw wb = Aktywny skoroszyt

Ten zeszyt

ten Ten zeszyt obiekt zawsze odwołuje się do skoroszytu, w którym przechowywany jest działający kod. Aby aktywować ThisWorkbook, użyj tego wiersza kodu:

1 ThisWorkbook.Activate

Otwórz skoroszyt

Aby otworzyć skoroszyt, użyj Metoda otwarta:

1 Workbooks.Open ("C:\Users\StevePC2\Downloads\book2.xlsm")

Nowo otwarty skoroszyt zawsze będzie Aktywny zeszyt, co pozwala na łatwą interakcję z nim.

1 ActiveWorkbook.Zapisz

Metoda otwarta ma kilka innych argumentów, umożliwiających otwieranie tylko do odczytu, otwieranie skoroszytu chronionego hasłem i nie tylko. Zostało to omówione w naszym artykule o otwieraniu / zamykaniu skoroszytów.

Otwórz i przypisz do zmiennej

Możesz także otworzyć skoroszyt i jednocześnie przypisać go do zmiennej:

12 Dim wb jako skoroszytSet wb = Workbooks.Open("C:\Users\StevePC2\Downloads\book2.xlsm")

Otwórz okno dialogowe pliku

Możesz także wywołać okno dialogowe Otwórz plik w następujący sposób:

12345678 Sub OpenWorkbook ()Dim strFile As StringstrFile = Aplikacja.PobierzOpenFilename()Workbooks.Open (strFile)Napis końcowy

Utwórz nowy (dodaj) skoroszyt

Ten wiersz kodu utworzy nowy skoroszyt:

1 Skoroszyty.Dodaj

Nowy skoroszyt staje się teraz Aktywny zeszyt, co pozwala na interakcję z nim (np. zapisanie nowego skoroszytu).

Dodaj nowy skoroszyt do zmiennej

Możesz także dodać nowy skoroszyt bezpośrednio do zmiennej:

12 Dim wb jako skoroszytUstaw wb = Skoroszyty.Dodaj

Zamknij skoroszyt

Zamknij i zapisz

Aby zamknąć skoroszyt z zapisaniem, użyj Zamknij metodę z Zapisz zmiany ustaw na PRAWDA:

1 ActiveWorkbook.Close SaveChanges:=True

Zamknij bez zapisywania

Aby zamknąć bez zapisywania, ustaw Zapisz zmiany równe FAŁSZ:

1 ActiveWorkbook.Zamknij ZapiszZmiany:=Fałsz

Skoroszyt Zapisz jako

ten Zapisz jako metodę służy do zapisywania skoroszytu jako.

Aby zapisać skoroszyt pod nową nazwą, w tym samym katalogu, możesz sugerować użycie tego:

1 ActiveWorkbook.SaveAs "nowy"

gdzie „nowy” to nowa nazwa pliku.

Aby zapisać skoroszyt w nowym katalogu z określonym rozszerzeniem pliku, po prostu określ nowy katalog i nazwę pliku:

1 ActiveWorkbook.SaveAs "C:\Users\StevePC2\Downloads\new.xlsm"

Inne skoroszytowe przykłady VBA

Nazwa skoroszytu

Aby uzyskać nazwę skoroszytu:

1 MsgBox ActiveWorkbook.Name

Chroń skoroszyt

Aby chronić strukturę skoroszytu przed edycją, możesz użyć Metoda ochrony (hasło opcjonalne):

1 Skoroszyty("book1.xlsm").Chroń "hasło"

Aby usunąć ochronę skoroszytu, użyj Metoda UnProtect:

1 Skoroszyty("book1.xlsm").Odbezpiecz "hasło"

Zapętlaj wszystkie otwarte skoroszyty

Aby przeglądać wszystkie otwarte skoroszyty:

123456789 Podrzędna pętlaWBs()Dim wb jako skoroszytDla każdego wb w skoroszytachMsgBox wb.NameNastępny wbNapis końcowy

Skoroszyt Aktywuj wydarzenie

Możesz uruchomić kod za każdym razem, gdy otwierany jest określony skoroszyt za pomocą Wydarzenie otwarte w skoroszycie.

Umieść tę procedurę w module ThisWorkbook w swoim skoroszycie:

123 Prywatny skoroszyt podrzędny_Open()Arkusze("arkusz1").AktywujNapis końcowy

Ta procedura zostanie aktywowana Arkusz1 za każdym razem, gdy skoroszyt jest otwierany.

wave wave wave wave wave