google-apps-script - 数数。googlesheets appscript中单元格值更改的次数
问题描述
我试图数数。一次单元格值(B2)在工作表中发生变化......(D2单元格给出计数)我能够找到下面的代码仅适用于一个单元格,但不适用于(B2:B51)这样的范围...... ... 任何帮助是极大的赞赏。
function onEdit(e) { incrementCounter_(e); }
function incrementCounter_(e) {
var sheetToWatch = 'Sheet2';
var cellToWatch = 'B2';
var cellToIncrement = 'D2';
if (!e || !e.range) { return; }
var sheet = e.range.getSheet();
if (sheet.getName() === sheetToWatch && e.range.getA1Notation() === cellToWatch) {
var cell = sheet.getRange(cellToIncrement);
cell.setValue((Number(cell.getValue()) || 0) + 1);
}
}
解决方案
检查编辑的单元格是否在特定范围内。这应该可以解决问题。
function incrementCounter_(e) {
var sheetToWatch = 'Sheet1';
// Define range here
// Sample range is B2:B51
var cellToWatchRange = {
top : 2,
bottom : 51,
left : 2,
right : 2
};
// Exit if we're out of range or not the sheet we are looking for
var thisRow = e.range.getRow();
var thisCol = e.range.getColumn();
var sheet = e.range.getSheet();
if (thisRow < cellToWatchRange.top || thisRow > cellToWatchRange.bottom
|| thisCol < cellToWatchRange.left || thisCol > cellToWatchRange.right
|| !e || !e.range || sheet.getName() !== sheetToWatch) {
return;
}
// Offset column to 2 to the right (D)
var cell = sheet.getRange(thisRow, thisCol + 2);
cell.setValue((Number(cell.getValue()) || 0) + 1);
}
推荐阅读
- pca - Rapidminer中如何选择依赖PC的记录来降维?
- python - 在图像上绘制长宽比为 3:2 的矩形
- ios - 在 AlerView 的操作按钮上将文本设置为 TextView 单击 [iOS,Swift]
- javascript - 为什么 npm、cdnjs、unpkg 不支持 Babel 7 版,而 GitHub 有 7 版稳定性?
- laravel - 将 vue 变量安装在 section('title') 上
- html - 如何在 symfony 中设置选定的选项?
- azure - 通过 AZURE CLI 创建的 LUIS 服务未显示在 LUIS 门户上
- android - 如何在不编程的情况下创建带有可绘制对象的自定义 ProgressBar?
- javascript - 如何在使用 jquery mobile 加载的每个页面上执行相同的 javascript 函数
- mysql - 在数据没有密钥的情况下使用 json_extract mysql