Tworzenie sumy bieżącej w komentarzu komórki w programie Excel za pomocą makra OnEntry

Uwaga

Nazwa usługi Office 365 ProPlus została zmieniona na Aplikacje usługi Microsoft 365 dla przedsiębiorstw. Aby uzyskać więcej informacji na temat tej zmiany, przeczytaj ten wpis w blogu.

Podsumowanie

W programie Microsoft Excel można uniknąć odwołań cyklicznych podczas tworzenia sumy bieżącej, przechowując wynik w części nieo obliczanej w arkuszu. Ten artykuł zawiera przykładową procedurę języka Microsoft Visual Basic for Applications, która jest w tym celu przechowywana suma bieżąca w komentarzu komórki.

Więcej informacji

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnych funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika.

Aby utworzyć sumę bieżącą w komórce

  1. Otwórz nowy skoroszyt w programie Microsoft Excel.

  2. Uruchom Edytor Visual Basic (naciśnij klawisze ALT+F11).

  3. W menu Wstaw kliknij polecenie Moduł.

  4. W tym module wpisz następujące makra:

       ' The Auto_Open name forces this macro to run every time
       ' the workbook containing this macro is opened.
    
    Sub Auto_Open()
       '  Every time a cell's value is changed,
       '  the RunningTotal macro runs.
          Application.OnEntry = "RunningTotal"
       End Sub
    
       '----------------------------------------------------------
       ' This macro runs each time the value of a cell changes.
       ' It adds the current value of the cell to the value of the
       ' cell comment. Then it stores the new total in the cell comment.
       Sub RunningTotal()
    
    On Error GoTo errorhandler      ' Skip cells that have no comment.
    
    With Application.Caller
    
       '     Checks to see if the cell is a running total by
       '     checking to see if the first 4 characters of the cell
       '     comment are "RT= ". NOTE: there is a space after the equal
       '     sign.
             If Left(.Comment.Text, 4) = "RT= " Then
    
       '        Change the cell's value to the new value in the cell
       '        plus the old total stored in the cell comment.
                RT = .Value + Right(.Comment.Text, Len(.Comment.Text) - 4)
                .Value = RT
    
       '        Store the new total in the cell note.
                .Comment.Text Text:="RT= " & RT
            End If
          End With
    
    Exit Sub      ' Skip over the errorhandler routine.
    
    errorhandler: ' End the procedure if no comment in the cell.
          Exit Sub
    
    End Sub
    
       '--------------------------------------------------------------
       ' This macro sets up a cell to be a running total cell.
       Sub SetComment()
          With ActiveCell
       '     Set comment to indicate that a running total is present.
       '     If the ActiveCell is empty, multiplying by 1 will
       '     return a 0.
             .AddComment
             .Comment.Text Text:="RT= " & (ActiveCell * 1)
          End With
       End Sub
    
  5. Po wpisaniu makr kliknij polecenie Zamknij i wróć do programu Microsoft Excel w menu Plik.

  6. Zapisz i zamknij skoroszyt, a następnie otwórz go ponownie.

    Wpisanie Auto_Open makra jest uruchamiane po otwarciu skoroszytu.

  7. Zaznacz komórkę C3.

    Jest to komórka, która będzie zawierać komentarz z sumą bieżącą.

  8. Aby uruchomić makro SetComment, wykonaj następujące czynności:

    1. W menu Narzędzia wskaż polecenie Makro, a następnie kliknij polecenie Makra.
    2. W oknie dialogowym Makro kliknij pozycję UstawComment, a następnie kliknij przycisk Uruchom.

Przykład użycia sumy bieżącej

Aby użyć sumy bieżącej, wykonaj następujące czynności:

  1. Wpisz liczbę 10 w komórce C3.
  2. Zaznacz komórkę C3 i zwróć uwagę, że w komentarzu jest wyświetlany komunikat "RT= 10" (bez cudzysłowów).
  3. Wpisz liczbę 7 w komórce C3.
  4. Zaznacz komórkę C3 i zwróć uwagę, że komentarz wyświetli wartość "RT= 17" (bez cudzysłowów).

Aby usunąć sumę bieżącą

Aby usunąć sumę bieżącą, wykonaj następujące czynności:

  1. Zaznacz komórkę zawierającą sumę bieżącą, którą chcesz usunąć.
  2. Kliknij komórkę prawym przyciskiem myszy, a następnie w menu skrótów kliknij polecenie Usuń komentarz.