sheet1 中有数据,A 列中有复选框。单元格 B2 中有一个搜索字段。该单元格 B2 引用了过滤器函数。过滤器功能位于单元格 B4 中。因此,当我搜索特定单词时,它将填充或返回值到单元格 B5、C5 和 D5。
所以我正在寻找的是,当复选框 A5 被选中/为真时,将 C5 上的单元格值仅作为静态数据复制到单元格 G5,如果未选中,则输入“豁免”一词。我的目标是,即使在脚本运行后 C5 上的值发生变化,我也想使用单元格 G5 中复制的值作为不同公式中的静态引用。
这是我当前的公式,它实际上与 onEdit 触发器一起使用,但我的问题是,当快速选中或取消选中复选框时,值不会改变,并且需要很长时间,例如超过 30 秒更新。有时根本不会做出任何改变
function selecteditem (e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var pasteSheet = ss.getSheetByName("Sheet1");
var editedCell = e.range;
if (pasteSheet.getName() == "Sheet1") {
if (editedCell.getA1Notation() == "A5") {
if (editedCell.isChecked()) {
var valueToCopy = pasteSheet.getRange("C5").getValue();
pasteSheet.getRange("G5").setValue(valueToCopy);
} else {
pasteSheet.getRange("G5").setValue("Exempt");
}
}
}
试试这个:
function selecteditem(e) {
const sh = e.range.getSheet();
if (sh.getName() == "Sheet1" && e.range.columnStart == 1 && e.range.rowStart == 5) {
if (e.value == "TRUE")
sh.getRange("G5").setValue(sh.getRange("C5").getValue(););
} else {
sh.getRange("G5").setValue("Exempt");
}
}