google-apps-script - 脚本帮助移动单元格值
问题描述
我有一个共享电子表格,我经常需要更正。我正在尝试编写一个脚本,如果与我共享工作表的人将信息放在错误的列中,它将自动移动单元格值。我可以清除条件的 if 语句,但在找出移动值的代码时遇到了麻烦。在 AI 列中有输入数字的第 8-30 行。在大多数情况下,除了某些情况(我的 if 语句涵盖了这些情况)外,B 列中不应包含任何内容。我希望我的脚本从 B 列中获取值,将其保留在同一行并将其添加到 A 列中的单元格中。然后我希望它删除在错误位置输入的值。任何人都可以帮助我使用语法来帮助我调用被编辑的单元格,获取其值,将其添加一列吗?
我从一个非常基本的脚本开始,稍后将限定我的 if 语句,以便在使 IF 语句更复杂之前确保它的工作。提前感谢您提供的任何帮助。
function onEdit(e) {
var ss = SpreadsheetApp.getActive();
var r = ss.getActiveRange();
if(r.getColumn() == 2 ) {
\\ need calls for current cell value and adding I believe what is below will clear the cell that gets edited.
spreadsheet.getRange(r).activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
}
}
解决方案
从问题
我希望我的脚本从 B 列中获取值,将其保留在同一行并将其添加到 A 列中的单元格中。然后我希望它删除在错误位置输入的值。任何人都可以帮助我使用语法来帮助我调用被编辑的单元格,获取其值,将其添加一列吗?
利用 Edit 事件对象。
/**
* @param {Object} e Edit event object
* @param {Range} e.range Edited range, it could have a single cell or multiple cells
* @param {number|string|boolean|Date} [e.value] Edited cell value. It's only included when a single cell is edited
*/
function onEdit(e){
var e = e || (() => {
var obj = {range: SpreadsheetApp.getCurrentCell()};
obj.range.columnStart = obj.range.getColumn();
return obj
})();
// If the onEdit function is executed from the script editor use the active cell
if(e.range.columnStart === 2){
const editedCell = e.range.getCell(1,1); // Grabs the top right cell of edited range
const value = e.value || editedCell.getValue(); // If only one cell is edited we could use e.value, otherwise we need to use getValue();
editedCell.offset(0,-1).setValue(value);
editedCell.clearContent();
}
}
推荐阅读
- linux - 问:柯南错误:不正确的“clang”,不是 CMake 检测到的错误:“GNU”当我使用选项“-s build_type=Debug”时
- pandas - pandas groupby 返回带有另外两个聚合的多索引
- java - 解决 Thymeleaf 中缺乏可选支持的问题
- python - 在 Panda DataFrame 中返回十进制数的倍数
- python - 安装 Keras 遇到问题
- c++ - (1)为什么它不能识别这是一个回文&(2)我如何让它打印带有空格的原始输入?
- c++ - 从“const QString”到“QTreeWidgetItem”的函数式转换没有匹配的转换
- jquery - 如何延迟淡出的功能?
- plot - 单独的 EPSlatex 不添加 \end{document}
- java - 如何编写一个在某些列值中生成数字的数组生成器?