脚本的亲爱的Oracle,
我一直在尝试获取一些脚本,以便在我输入的行下方自动添加一行,但前提是“余额”为零,但不为零。如果为零,则不希望再添加一行。
我尝试了一些脚本并环顾了整个站点,并在编辑时使用触发器进行了尝试,但是尽管我试图说明触发条件,但它们似乎只是增加了一行。
function onEdit(event) {
var eventRange = event.range;
if (eventRange.getColumn() == 12) { // 12 = column of input that triggers it
var columnXRange =
SpreadsheetApp.getActiveSheet().getRange(eventRange.getRow(), 13,
eventRange.getNumRows(), 12); /// column number it affects
var values = columnXRange.getValues();
for (var i = 0; i < values.length; i++) {
if (!values[i][0]) { // If cell isn't empty
values[i][0] = '0';
}
}
columnXRange.setValues(values);
}
}
function Clear(e){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('AGL');
sheet.getRange('N4:N').clearContent();
}
function AddRow() {
var sheet = SpreadsheetApp.getActiveSheet();
if (sheet.getName() == "AGL") {
var activeCell = sheet.getActiveCell();
if (activeCell.getColumn() == 13) {
var Balance = sheet.getRange('N:N');
if (Balance != '0'); {
sheet.insertRowAfter(activeCell.getRow());
}
}
}
}
在N列中,我有一个数组公式计算出存货的余额与存货的余额。
在M列中,我正在运行一个脚本,当在L列中放入某些内容时,该脚本将添加0。我也有一个脚本,该脚本会擦除数组公式的输出,因此它们不会彼此缠结
我想在编辑一行时,将图形放在L或M列中,并且如果N列中的余额大于0,我想在其下添加新行。 (如果您可以从A&B中添加值,那将是一个奖励,但并不繁琐。)如果余额为0,则我不想添加行。
目前,我混合的结果是每次我编辑N列时都添加一行。
答案 0 :(得分:1)
在编辑L或M列并且N列的值大于0时添加一行(如果可能,则将A和B列的值添加到新行中)。
这几乎是您脚本所需要的。我添加了评论来解释每个部分的功能,因此应该很容易理解。
function onEdit(e) {
//define edited sheet, row number and column number
var sh = e.source.getActiveSheet();
var row = e.range.getRow();
var col = e.range.getColumn();
//get value of column N for edited row
var val = sh.getRange(row, 14).getValue();
//if columns L or M are edited and column N is greater than 0
if ((col === 12 || col === 13) === true && val > 0) {
//insert row below edited row
sh.insertRowAfter(row);
//get values of columns A and B of edited row
var vals = sh.getRange(row, 1, 1, 2).getValues();
//set values in columns A and B
sh.getRange(row+1, 1, 1, 2).setValues(vals);
}
}
我没有包含任何其他功能,只添加了一行,如果需要,您可以将其合并到此功能中。
您将根本无法手动运行此脚本(它将在第一行中失败),它将在编辑工作表时自动运行。