【发布时间】:2021-03-22 23:39:51
【问题描述】:
我有下面的代码。在col B中输入“是”时,它应该增加ID。 它在一定程度上完成了工作,但它始终保持零的数量相同,而当 ID 达到 10s 时它应该减少 1,当它达到 100s 时减少 2 等等。
function onEdit(e){
var AUTOINC_COLUMN = 0;
var HEADER_ROW_COUNT = 1;
var zeros = "000000";
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var worksheet = spreadsheet.getSheetByName("Sheet6");
var rows = worksheet.getDataRange().getNumRows()-1;
var vals = worksheet.getSheetValues(1, 1, rows+1, 2);
var r = worksheet.getActiveCell();
if (r.getColumn() == 2 && worksheet.getName()=='Sheet6' && r.getValue() == "Yes") {
for (var rowx = HEADER_ROW_COUNT; rowx < vals.length; rowx++) {
try {
var id = vals[rowx][AUTOINC_COLUMN];
Logger.log(id);Logger.log((""+id).length ===0);
if ((""+id).length === 0) {
worksheet.getRange(rowx+1, AUTOINC_COLUMN+1).setValue("STU" + ("0".repeat(zeros.length - rowx.toString.length)) + rowx);
}
} catch(ex) {
}
}
}
}
似乎 toString 函数由于某种原因没有返回正确的值。有人可以帮忙吗?
【问题讨论】:
-
你能显示一个示例文件的屏幕截图吗?
-
@NaziA 刚刚做到了。在 A 列和 B 列中是我得到的结果,在 B 和 C 列中是我希望看到的结果。我突出显示了第 9 行和第 10 行的区别。
-
在下面添加了答案,应该可以回答您的问题。如果对您有帮助,请随意选择答案并投票。
标签: google-apps-script auto-increment