我正在尝试基于另一个工作表中的单元格在Google工作表中创建选择列表。这些单元格包含我的列表应显示的所有值。
它运作良好,但我也想检索这些单元格的样式以及值。因此,在我的主表中,根据选择的值,从“源”单元格中复制样式。
我知道我可以设置条件格式,因此如果值是X或Y或ZI可以应用样式,但是由于要更新“源”单元格,因此我还必须更新那些条件,即过程缓慢。
我想知道是否有一种方法可以动态地复制另一个单元格的样式。
这是我的源单元格的一个示例:
答案 0 :(得分:1)
使用Apps脚本,您可以创建一个onEdit trigger来执行以下操作:
为此,只需选择工具>脚本编辑器来创建绑定脚本,然后复制以下代码并保存项目。
const onEdit = e => {
// Get information on edited cell (column, row, value):
const range = e.range;
const column = range.getColumn();
const row = range.getRow();
const value = range.getValue();
// Check that edited cell contains a validation rule and that its criteria type is "VALUE_IN_RANGE":
const validation = range.getDataValidation();
if (validation && validation.getCriteriaType() == "VALUE_IN_RANGE") {
const sourceRange = validation.getCriteriaValues()[0]; // Get range validation is based on
// In source range, get index of the cell that corresponds to selected value in edited cell:
const values = sourceRange.getValues();
let i, j;
for (i = 0; i < values.length; i++) {
j = values[i].indexOf(value);
if (j != -1) break;
}
const rangeToCopy = sourceRange.getSheet().getRange(sourceRange.getRow() + i, sourceRange.getColumn() + j); // Get cell in source range to copy format
rangeToCopy.copyFormatToRange(range.getSheet(), column, column, row, row); // Copy format to edited cell
}
}