空白单元格使用onEdit()打破脚本

时间:2017-05-29 22:05:26

标签: google-apps-script google-sheets

我编写了这个脚本,通过按Enter键从左到右逐步输入数据来连续输入数据。

代码:

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()方法跳过始终为空的列。但是,我无法想出一种方法来调整有时是空白的单元格,有时会包含数据。

我知道如果我只是在单元格中输入空格,脚本就会起作用。我不认为在单元格中看到空白的空格会损害我的任何工作表,但我真的想用代码来解决这个问题。

谢谢,吉姆

1 个答案:

答案 0 :(得分:0)

您可以测试空格的单元格值:

maxcut.add_constraint(pic.tools.diag_vect(Y)==1)

如果没有编辑单元格,按下Enter键时,触发器无法检测到。在这种情况下,按空格键,然后按Enter键可能是最佳选择。如果发现活动单元格有空格,则可以立即删除该空格。

if (activeCell.getValue() === " ") {

完整代码:

activeCell.setValue("");