我想要做的是,每當編輯范圍 (B1:B10) 中的任何單元格時,我想總結范圍 (B1:B10) 內的值并將其添加到單元格 B11。我使用了以下代碼,但它將公式添加到單元格中。我只想輸入求和值,而不是公式本身。
function onEdit(e) {
var ss = e.source;
var cell = e.range;
if(cell.getA1Notation() === "B1:B10" && ss.getActiveSheet().getName() == "TEST"){
ss.getActiveSheet().getRange("B11").setFormula("=SUM(B1:B10)");
}
}
我試圖在谷歌上找到答案,但我找不到。
uj5u.com熱心網友回復:
使用Array.filter()
and Array.reduce()
,像這樣:
/**
* Simple trigger that runs each time the user hand edits the spreadsheet.
*
* @param {Object} e The onEdit() event object.
*/
function onEdit(e) {
let sheet;
if (e.range.columnStart !== 2
|| e.range.rowStart > 10
|| (sheet = e.range.getSheet()).getName() !== 'TEST') {
return;
}
const rangeToWatch = sheet.getRange('B1:B10');
const targetCell = sheet.getRange('B11');
const total = rangeToWatch.getValues()
.flat()
.filter(value => typeof value === 'number')
.reduce((sum, current) => sum current, 0);
targetCell.setValue(total);
}
uj5u.com熱心網友回復:
也許您可以洗掉代碼并將公式“隱藏”在另一個單元格中。假設您需要在 A11 中包含文本“TOTAL”,那么您可以先洗掉 B11 中的內容,然后再放入 A11:
={"合計",SUM(B1:B10)}
這樣它會擴展到 B11 但是如果你點擊那個單元格你只會看到值,而不是公式
PS:如果您嘗試禁用或洗掉代碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/534782.html
上一篇:谷歌表格-查詢以過濾行和列
下一篇:npminstallJSON.parseUnexpectedtoken"}"(0x7D)inJSONatposition98whileparsingnear"...:\