Contare le celle con il colore di sfondo

1

In un intervallo di celle, esiste un modo per contare quelli con determinati colori di sfondo?

    
posta jherran 24.08.2017 - 08:22
fonte

1 risposta

1

Ecco un esempio di AppleScript che conta il numero di celle in un intervallo che ha il colore di sfondo di rosso.

TienipresentecheilnumerodocumentodidestinazioneeraapertoesullosfondodiScriptEditor.

Quandoèstatoeseguitoloscript,havisualizzatolaseguentefinestradidialogo.

--#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: questo è stato testato su una vecchia versione di Numeri (09 ver 2.3) e potrebbe dover essere modificato per le versioni più recenti.

Se non sai quale sia il RGB valore di un dato cell , per inserire lo script sopra, quindi per ottieni il RGB valore del background color di un dato cell , ad es. F5 , usa:

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 una FYI, ho codificato l'esempio principale più avanti nel modulo lungo e potrebbe essere ridotto a quanto segue per il tell application "Numbers" blocco :

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
    
risposta data 24.08.2017 - 13:18
fonte

Leggi altre domande sui tag