Använd makrot OnEntry för att skapa en löpande summa i en cellkommentare i Excel

Sammanfattning

I Microsoft Excel kan du undvika cirkelreferenser när du skapar en löpande summa genom att lagra resultatet i en icke-beräknande del av ett kalkylblad. Den här artikeln innehåller ett exempel på en Microsoft Visual Basic for Applications-procedur som gör detta genom att lagra en löpande summa i en cellkommentare.

Mer information

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supportexperter kan hjälpa till att förklara funktionerna i en viss procedur, men de kommer inte att ändra dessa exempel för att tillhandahålla extra funktioner eller konstruera procedurer för att uppfylla dina specifika behov.

Så här skapar du en löpande summa i en cell

  1. Öppna en ny arbetsbok i Microsoft Excel.

  2. Starta Visual Basic-Editor (tryck på ALT+F11).

  3. Klicka på ModulInfoga-menyn.

  4. Skriv följande makron i den här modulen:

       ' 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. När du har skrivit makrona klickar du på Stäng och återgår till Microsoft ExcelArkiv-menyn .

  6. Spara och stäng arbetsboken och öppna den igen.

    Det Auto_Open makro som du skrev körs när du öppnar arbetsboken.

  7. Välj cell C3.

    Det här är cellen som innehåller en kommentar med den löpande summan.

  8. Kör setcomment-makrot genom att följa dessa steg:

    1. Peka på Makro på Verktyg-menyn och klicka sedan på Makron.
    2. I dialogrutan Makro klickar du på SetComment och sedan på Kör.

Ett exempel på hur du använder löpande summa

Följ dessa steg om du vill använda den löpande summan:

  1. Ange talet 10 i cell C3.
  2. Markera cell C3 och lägg märke till att kommentaren visar "RT= 10" (utan citattecken).
  3. Skriv talet 7 i cell C3.
  4. Markera cell C3 och lägg märke till att kommentaren visar "RT= 17" (utan citattecken).

Ta bort löpande summa

Så här tar du bort den löpande summan:

  1. Markera cellen som innehåller den löpande summa som du vill ta bort.
  2. Högerklicka på cellen och klicka på Ta bort kommentar på snabbmenyn.