Vytvoření průběžného součtu v komentáři k buňce v Excelu pomocí makra OnEntry

Souhrn

V Microsoft Excelu se při vytváření mezisoučet můžete vyhnout cyklických odkazů tím, že výsledek uložíte do nepočítání části listu. Tento článek obsahuje ukázkovou proceduru jazyka Microsoft Visual Basic for Applications, která to provede uložením průběžného součtu v komentáři k buňce.

Další informace

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci, bez žádné záruky výslovně uvedené nebo odvozené, včetně, bez omezení, odvozených záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že uživatel je obeznámen s programovacím jazykem, který je předmětem ukázky, a s nástroji použitými pro vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo konstrukce podle konkrétních požadavků uživatele.

Vytvoření mezisoučet v buňce

  1. Otevřete nový sešit v Microsoft Excelu.

  2. Spusťte Editor jazyka Visual Basic (stiskněte kombinaci kláves ALT+F11).

  3. V nabídce Vložit klikněte na položku Modul.

  4. Do tohoto modulu zadejte následující 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 zadání maker klikněte v nabídce Soubor na Zavřít a vrátit se do aplikace Microsoft Excel.

  6. Uložte a zavřete sešit a pak ho znovu otevřete.

    Makro Auto_Open, které jste zadali, se spustí při otevření sešitu.

  7. Vyberte buňku C3.

    Toto je buňka, která bude obsahovat komentář s průběžným součtem.

  8. Makro SetComment spustíte takto:

    1. V nabídce Úpravy přejděte na Makro a pak klikněte na Makra.
    2. V dialogovém okně Makro klikněte na NastavitKoment a potom klikněte na Spustit.

Příklad použití průběžného součtu

Pokud chcete použít průběžný součet, postupujte takto:

  1. Do buňky C3 zadejte číslo 10.
  2. Vyberte buňku C3 a všimněte si, že se v komentáři zobrazí "RT= 10" (bez uvozovek).
  3. Zadejte číslo 7 do buňky C3.
  4. Vyberte buňku C3 a všimněte si, že se v komentáři zobrazí "RT= 17" (bez uvozovek).

Odebrání průběžného součtu

Chcete-li odebrat průběžný součet, postupujte takto:

  1. Vyberte buňku obsahující mezisoučet, který chcete odebrat.
  2. Klikněte pravým tlačítkem na buňku a v místní nabídce klikněte na Odstranit komentář.