换句话说,当在单元格A1中键入00FF00
时,单元格B1的公式将其转换为#00FF00
,它会自动突出显示具有相应颜色的单元格B1。第一次工作。
然而,一旦将单元格A1的十六进制值手动更改为FF0000
之类的另一种颜色,单元格B1会自动将值更改为#FF0000
而不是背景 - >之前的背景仍然存在(在这种情况下为#00FF00
)。
答案 0 :(得分:0)
尝试以下脚本代码:
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var c = ss.getActiveCell();
if( s.getName() == 'Sheet1' && c.getA1Notation() == 'A1' )
s.getRange('B1').setBackground( '#' + c.getValue() );
};
注意:在上面的代码中更改工作表名称" Sheet1"还有细胞" A1" &安培; " B1"根据您的要求。
答案 1 :(得分:0)
这是一个有效的代码,但我需要手动输入Hex值以使背景颜色自动显示 - >目前,由公式(其中包含A1 + A2 + A3个单元格)产生的B1中的十六进制值只能工作一次(然后,只要改变十六进制值,单元格B1保持其先前的背景颜色,即使单元格-B1中的十六进制值发生变化。
// regex for hex color codes
HEX_COLOR_REGEX = /(^#[0-9A-Fa-f]{3}$)|(#[0-9A-Fa-f]{6}$)/;
// column to watch for changes (i.e. column where hex color codes are to be entered)
HEX_CODE_COLUMN = 5; // i.e. column A
// column to change when above column is edited
HEX_COLOR_COLUMN = 5; // i.e. column B
// utility function to test whether a given string qualifies as a hex color code
function hexTest(testCase) {
return HEX_COLOR_REGEX.test(testCase);
}
function onEdit(e) {
var range = e.range;
var row = range.getRow();
var column = range.getColumn();
if (column === HEX_CODE_COLUMN) {
var values = range.getValues();
values.forEach( function checkCode(rowValue, index) {
var code = rowValue[0];
if (hexTest(code)) {
var cell = SpreadsheetApp.getActiveSheet().getRange(row + index, HEX_COLOR_COLUMN);
cell.setBackground(code);
SpreadsheetApp.flush();
}
});
}
}