我编写了这个脚本,通过按回车键从左到右逐行输入数据。
代码:
function onEdit(e) {
var cell,
newCell,
col,
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
col = sheet.getActiveCell();
newCell = col.getColumn();
if (newCell == 7.0) {
//Processed last column, move to column A
cell = sheet.getActiveCell();
cell = cell.offset(1, -6);
sheet.setActiveSelection(cell);
} else {
cell = sheet.getActiveCell();
cell = cell.offset(0, 1);
sheet.setActiveSelection(cell);
}
}
它一直有效,直到我到达一个需要留空的单元格。将单元格留空时按 Enter 键不会触发 onEdit() 事件。我可以通过调整前面的单元格 offset() 方法跳过始终为空白的列。但是,我无法找到一种方法来调整有时为空白且有时包含数据的单元格。
我知道如果我只是在单元格中输入一个空格,脚本就会起作用。我不认为在一个看起来空白的单元格中有一个空格会损害我的任何工作表,但我真的很想用代码解决这个问题。
谢谢,吉姆
您可以测试空格的单元格值:
if (activeCell.getValue() === " ") {
在没有编辑单元格的情况下,触发器无法检测何时按下 Enter 键。在这种情况下,按空格键,然后按 Enter 可能是最好的选择。如果发现活动单元格有空格,可以立即删除该空格。
activeCell.setValue("");
function runOnEnter() {
var activeCell,cell,newCell,col,sheet;
Logger.log('it ran oky')
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
activeCell = sheet.getActiveCell();
col = activeCell.getColumn();
if (activeCell.getValue() === " ") {//The active cell has one space
Logger.log('it has a space')
activeCell.setValue("");//Delete the space
return;//quit
}
if (col == 7.0) {//If this is column 7
cell = activeCell.offset(1, -6);
sheet.setActiveSelection(cell);//move to column A
} else {
cell = activeCell.offset(0, 1);
sheet.setActiveSelection(cell);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句