In un intervallo di celle, esiste un modo per contare quelli con determinati colori di sfondo?
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
Leggi altre domande sui tag numbers