我试图弄清楚如何onEdit
为以下方法创建事件。
示例:Column1 =我将输入值以计算Column2(+/-)Column2 =基于单元格值(+/-)的值Column2基于输入的单元格值
我需要每一行a1:b1
,a2:b2
依此类推:
例如,当我输入A1(-100)
并B1
已经有一个值时200
,应该给我结果,100
然后删除输入的A1中的值。相同A2(+100)
,B1(50)
应该给我一个结果,150
并删除中的值A2
。
所以,最终的结果应该是B1 = 100
和B2 = 150
等
我用此代码尝试过
function onEdit(e){
var Column1 = 1;
var Column2 = 2;
if( e.range.getColumn() == Column1 && e.value){
e.range.setValue(e.value * e.range.offset(0, Column2 - Column1).getValue());
}
}
但这只是我需要的一半,我现在在这里呆了几个小时。如果有人可以帮助我完成这项任务,那就太好了。
根据您的解释,您想要添加数字。
例如:
(-100)
+ 200
会给你100
。
您当前的脚本缺少以下两个功能:
它不添加值。
A
操作完成后,不会清除列中的值。
function onEdit(e) {
const inputCol = 1;
const as = e.source.getActiveSheet(); // get active sheet
const ar = e.range;
const row = ar.getRow(); // get edited row
const col = ar.getColumn(); // get edited column
if (as.getName() == "Sheet1" && col == inputCol){
const rng = as.getRange(row,inputCol+1);
rng.setValue(parseInt(e.value)+rng.getValue());
ar.clearContent();
}
}
我假设您想将此操作应用于特定的工作表,因此我添加了一个条件以仅针对运行代码Sheet1
。如果您不希望这种行为,则将其完全删除。如果要使用其他工作表名称,请更改Sheet1
为工作表名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句