Użyj makra OnEntry, aby utworzyć sumę bieżącą w komentarzu do komórki w programie Excel

Podsumowanie

W programie Microsoft Excel można uniknąć odwołań cyklicznych podczas tworzenia sumy bieżącej, przechowując wynik w nieliczającej części arkusza. Ten artykuł zawiera przykładową procedurę Visual Basic for Applications firmy Microsoft, która to robi, przechowując sumę bieżącą w komentarzu do 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 Redaktor Visual Basic (naciśnij klawisze ALT+F11).

  3. W menu Insert (Wstaw) kliknij polecenie Module (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 pozycję Zamknij i wróć do programu Microsoft Excel w menu Plik .

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

    Wpisane makro Auto_Open jest uruchamiane po otwarciu skoroszytu.

  7. Wybierz komórkę C3.

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

  8. Wykonaj następujące kroki, aby uruchomić makro SetComment:

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

Przykład użycia sumy bieżącej

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

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

Aby usunąć sumę bieżącą

Aby usunąć sumę bieżącą, wykonaj następujące kroki:

  1. Wybierz komórkę zawierającą sumę bieżącą, która ma zostać usunięta.
  2. Kliknij prawym przyciskiem myszy komórkę i kliknij pozycję Usuń komentarz w menu skrótów.