Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Scitanie buniek na zaklade formatovania

Vytvor si funkciu v module VBA projektu, pomocou ktorej zistíš farby pre rozsah buniek:

Function COLOR(aRange As Range) As Variant
    Dim aColors() As Variant
    Dim aRow As Integer
    Dim aColumn As Integer
    
    If aRange.Cells.Count = 1 Then
        COLOR = aRange.Interior.ColorIndex
        Exit Function
    End If
    
    ReDim aColors(1 To aRange.Rows.Count, 1 To aRange.Columns.Count)
    For aRow = 1 To aRange.Rows.Count
        For aColumn = 1 To aRange.Columns.Count
            aColors(aRow, aColumn) = aRange.Cells(aRow, aColumn).Interior.ColorIndex
        Next aColumn
    Next aRow
    COLOR = aColors
End Function
Potom môžeš bunky rovnakej farby v nejakej oblasti jednoducho spočítať pomocou funkcie SUMPRODUCT. Napríklad bunky v oblasti C1:C8, ktoré majú farbu ako bunka A1, spočítaš takto:
=SUMPRODUCT((COLOR($C$1:$C$8)=COLOR($A$1))*$C$1:$C$8)
Česky:
SOUČIN.SKALÁRNÍ((COLOR($C$1:$C$8)=COLOR($A$1))*$C$1:$C$8)
P.S.: Ešte dodám, že počítať čokoľvek podľa farby je nesystémové riešenie, ktoré so sebou prináša len problémy. S takým zošitom, kde záleží na farbe buniek, sa nepracuje dobre.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny