Czy istnieje sposób na włączenie funkcji zdarzeń „skoroszytu” do mojego osobistego pliku makr?

0

na przykład

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    Beep
End Sub

Działa to tylko w „ThisWorkbook” i tylko w 1 arkuszu kalkulacyjnym na raz, nie w moim pliku personal.xlsb. (Zainspirowany stąd .)

Eliyahu
źródło
Możesz wywołać makro w swoim osobistym skoroszycie z innego skoroszytu, ale nie polecam go. Będziesz jedyną osobą, która kiedykolwiek będzie mogła korzystać ze skoroszytu, chyba że masz sposób na dodanie kodu do wywołania na personal.xls. Czy naprawdę próbujesz wygenerować sygnał dźwiękowy, czy też rzeczywisty kod jest bardziej skomplikowany?
RubberDuck,
@RubberDuck naprawdę po prostu wydaje dźwięk. Chcę wiedzieć, kiedy (czasem) długie obliczenia są zakończone. Ta szczególna funkcja zdarzenia nie działa z mojego osobistego skoroszytu.
Eliyahu,
Nie zawracaj sobie głowy Każdy kod, który napiszesz w tym celu, będzie dłuższy niż zwykłe wywołanie Beepbezpośrednio ze Workbook_AfterSavezdarzenia.
RubberDuck,
@RubberDuck Ale chcę, aby generował tylko dźwięk dla mnie, a nie dla innych użytkowników, którzy otwierają i zapisują arkusz kalkulacyjny.
Eliyahu,

Odpowiedzi:

3
  1. Naciśnij, F4aby wyświetlić właściwości projektu.
  2. Nazwij projekt VBAP dla swojego osobistego skoroszytu Personal
  3. Utwórz podprogram, który wywołuje sygnał dźwiękowy.

    Public Sub MakeItBeep
        Beep
    End Sub
    
  4. W skoroszycie, w którym chcesz to włączyć, kliknij Tools>> Referencesna pasku menu.
  5. Kliknij Browse...
  6. Znajdź plik Personal.xls i wybierz go. (Może znajdować się w wielu różnych lokalizacjach, więc przeszukanie C:\dysku jest zwykle najłatwiejszym sposobem znalezienia go.)
  7. W odpowiednim przypadku skoroszytu wstaw ten kod (oczywiście dostosowując się do nazwy modułu).

    Personal.Module1.MakeItBeep

Jest z tym jednak kilka problemów i naprawdę tego nie polecam.

  1. To o wiele więcej kodu i pracy niż tylko Beepbezpośrednie dzwonienie .
  2. Najprawdopodobniej spowoduje to błąd dla każdego innego użytkownika, który pracuje ze skoroszytem. Musieliby wyłączyć makra w tej książce. Tak więc, jeśli istnieją inne makra, które muszą działać, nie możesz tego zrobić.

Możesz obejść to za pomocą dyrektyw, ale jest to okropnie dużo pracy bez korzyści. Jeśli nadal jesteś zainteresowany, napisałem samouczek na temat korzystania z kompilacji warunkowej z ustawieniem poziomu projektu .

Gumowa kaczuszka
źródło
Bardzo interesujące! Chociaż w skoroszycie mam inne makra, których chciałbym również używać inni użytkownicy ...
Eliyahu,
1
Przeczytaj opublikowany artykuł na blogu. Trzeba będzie wtedy warunkowo skompilować kod i pamiętać o wyłączeniu kodu dźwiękowego przed udostępnieniem skoroszytu.
RubberDuck,