Szukaj…


Jak nagrać makro

Najłatwiejszym sposobem zarejestrowania makra jest przycisk w lewym dolnym rogu programu Excel: Rozpocznij nagrywanie przycisku Marco

Po kliknięciu tego pojawi się wyskakujące okienko z prośbą o nazwę Makra i decyzję, czy chcesz mieć klawisz skrótu. Pyta również, gdzie przechowywać makro i opis. Możesz wybrać dowolną nazwę, bez spacji.

Wyskakuj, aby nagrać makro

Jeśli chcesz przypisać skrót do makra w celu szybkiego użycia, wybierz literę, którą zapamiętasz, aby móc szybko i łatwo używać makra w kółko.

Makro można przechowywać w „Skoroszycie”, „Nowym skoroszycie” lub „Skoroszycie makr osobistych”. Jeśli chcesz, aby makro, które zamierzasz nagrywać, było dostępne tylko w bieżącym skoroszycie, wybierz „Ten skoroszyt”. Jeśli chcesz zapisać go w nowym skoroszycie, wybierz „Nowy skoroszyt”. Jeśli chcesz, aby makro było dostępne dla każdego otwieranego skoroszytu, wybierz „Skoroszyt makr osobistych”.

Po wypełnieniu tego okna podręcznego kliknij „OK”.

Następnie wykonaj czynności, które chcesz powtórzyć z makrem. Po zakończeniu kliknij ten sam przycisk, aby zatrzymać nagrywanie. Teraz wygląda to tak:

Zatrzymaj rejestrowanie makra

Teraz możesz przejść do karty Deweloper i otworzyć Visual Basic. (lub użyj Alt + F11)

Będziesz teraz mieć nowy moduł w folderze Modules. Nowe moduły

Najnowszy moduł będzie zawierał właśnie zarejestrowane makro. Kliknij go dwukrotnie, aby go wyświetlić.

Zrobiłem prostą kopię i wklej:

Sub Macro1()
'
' Macro1 Macro
'

'
    Selection.Copy
    Range("A12").Select
    ActiveSheet.Paste
End Sub

Jeśli nie chcesz, aby zawsze wklejało się w „A12”, możesz użyć Odniesień względnych, zaznaczając pole „Użyj odniesień względnych” na karcie Deweloper: Referencje referencyjne

Wykonanie tych samych kroków, co poprzednio, spowoduje teraz przekształcenie makra w to:

Sub Macro2()
'
' Macro2 Macro
'

'
    Selection.Copy
    ActiveCell.Offset(11, 0).Range("A1").Select
    ActiveSheet.Paste
End Sub

Wciąż kopiuję wartość z „A1” do komórki 11 rzędów w dół, ale teraz możesz wykonać to samo makro z dowolną komórką początkową, a wartość z tej komórki zostanie skopiowana do komórki 11 rzędów w dół.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow