我的脚本位于Google电子表格文档中 这是我的剧本:
ss = SpreadsheetApp.getActiveSpreadsheet();
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {name: "10 Rows", functionName: "TenRows"},
{name: "20 Rows", functionName: "TwentyRows"},
{name: "30 Rows", functionName: "ThirtyRows"},
{name: "40 Rows", functionName: "FortyRows"},
{name: "50 Rows", functionName: "FiftyRows"}]
ss.addMenu("Insert Rows", menuEntries);
}
function TenRows() {
SpreadsheetApp.getActiveSheet().insertRowsBefore(2,10);
}
function TwentyRows() {
SpreadsheetApp.getActiveSheet().insertRowsBefore(2,20);
}
function ThirtyRows() {
SpreadsheetApp.getActiveSheet().insertRowsBefore(2,30);
}
function FortyRows() {
SpreadsheetApp.getActiveSheet().insertRowsBefore(2,40);
}
function FiftyRows() {
SpreadsheetApp.getActiveSheet().insertRowsBefore(2,50);
}
在我的电子表格的C栏中,每行都有一串数字。
喜欢这个
C
7317
7316
7315
7314
7313
当我运行我的脚本以插入多行时,我如何才能使它自动继续这个升序数并将其输入C列?
由于
答案 0 :(得分:1)
我显然不能在没有看到整个事情的情况下给你代码,但我可以就如何解决它给你建议:
lastNumber = parseInt(insertRowColumnC.getValue())
请确保使用parseInt
将字符串转换为数字(!)lastNumber
递减1,然后将其值写入该行的C列更新
看完电子表格后,我花了几分钟时间想出了这段代码:
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var r = e.source.getActiveRange();
if (r.getColumn() == 3 && r.getRow() == 2) {
var value = parseInt(r.getValue());
if (!isNaN(value)) {
var next = getFirstRowNumber(sheet);
if (value > next) {
var count = value - next;
sheet.insertRowsAfter(2, count);
for(var i = 2; i < 2 + count; i++) {
sheet.getRange(i + 1, 3).setValue(value);
value--;
}
r.setValue('');
} else {
r.setValue('');
Browser.msgBox('You need to enter a greater ID.');
}
} else if (r.getValue() !== '') {
r.setValue('');
Browser.msgBox('You need to enter a valid ID.');
}
}
}
你的问题有点不清楚,但这可以达到你想要的效果。
每当有人在2 / C中插入新ID时,新ID会丢失ID,并且会自动插入3 / C中的ID。