Contar celdas con color de fondo

1

En un rango de celdas, ¿hay alguna forma de contar las que tienen cierto color de fondo?

    
pregunta jherran 24.08.2017 - 08:22

1 respuesta

1

Aquí hay un ejemplo en AppleScript que contará el número de celdas en un rango que tiene la color de fondo de rojo.

TengaencuentaqueelobjetivoNúmerosdocumentoestabaabiertoyenelfondodeEditordesecuenciasdecomandos.

Cuandoseejecutóelscript,aparecióelsiguientecuadrodediálogo.

--#Userdefindedvariables.settheRangeto"A1:L10"

--  # The background color of the range’s cells. Expressed as a list of RGB (Red, Green, Blue) 
--  #  values, from 0 to 65535. For example, the color red is: {65535, 0, 0}

set R to 65535
set G to 0
set B to 0


--  # Other variables.

set thisColor to ""
set theRGBValue to {}
set theCount to 0


tell application "Numbers"
    tell document 1
        tell sheet 1
            tell table 1
                tell range theRange
                    repeat with i from 1 to (cell count)
                        set thisColor to background color of cell i as string
                        if thisColor is not "" then
                            set theRGBValue to (background color of cell i)
                            if item 1 of theRGBValue is equal to R and item 2 of theRGBValue is equal to G and item 3 of theRGBValue is equal to B then
                                set theCount to theCount + 1
                            end if
                        end if
                    end repeat
                end tell
            end tell
        end tell
    end tell
end tell

display dialog "The cell count with the color {" & R & ", " & G & ", " & B & "} is: " & theCount buttons {"OK"} default button 1

Nota: Esto se probó en una versión anterior de Números (09 ver 2.3) y es posible que deba ajustarse para versiones más nuevas.

Si no sabes cuál es el RGB valor de un cell dado, enchufarlo en el script anterior, y luego a obtenga el RGB valor del background color de un cell dado, por ejemplo F5 , use:

tell application "Numbers"
    get background color of cell 1 of range "F5:F5" of table 1 of sheet 1 of document 1
end tell

Solo un FYI, codifiqué el ejemplo principal más arriba en la forma larga y podría condensarse hasta lo siguiente para el bloque tell application "Numbers" :

tell application "Numbers"
    tell range theRange of table 1 of sheet 1 of document 1
        repeat with i from 1 to (cell count)
            if (background color of cell i as string) is not "" then
                set theRGBValue to (background color of cell i)
                if item 1 of theRGBValue is equal to R and item 2 of theRGBValue is equal to G and item 3 of theRGBValue is equal to B then
                    set theCount to theCount + 1
                end if
            end if
        end repeat
    end tell
end tell
    
respondido por el user3439894 24.08.2017 - 13:18

Lea otras preguntas en las etiquetas