简体   繁体   English

Google Sheets onEdit 函数跳转到 A1 单元格

[英]Google Sheets onEdit function jumping to A1 cell

I'm just starting with javascript and trying to make some checkboxes into radio buttons in Google Sheets.我刚开始使用 javascript 并尝试将一些复选框变成 Google 表格中的单选按钮。 It successfully turns off the appropriate checkboxes when one is turned on, but after the script runs the active cell always resets to the A1 cell in the 'Home' sheet, even if the edit was to a different sheet.它在打开时成功关闭了相应的复选框,但在脚本运行后,活动单元格始终重置为“主页”工作表中的 A1 单元格,即使编辑是针对不同的工作表。

I'm lost as to why this is happening.我不知道为什么会这样。 I would like the original sheet & cell the user was on to remain activated after the script runs.我希望用户所在的原始工作表和单元格在脚本运行后保持激活状态。

function onEdit(e) {
  var ss = e.source;
  var eSheet = ss.getActiveSheet();
  var eRange = e.range;
  if ((eSheet.getSheetName() == "Home") && (e.range.rowStart == 8) && (e.range.columnStart > 2) && (e.range.columnStart < 8) && (e.value == "TRUE")) {

    // Makes sure no other checkboxes are on
    for (var i = 3; i < 8; i++) {
      if (i == e.range.columnStart) continue;
      SpreadsheetApp.getActiveSheet().getRange(e.range.rowStart, i).setValue(false);
    }
  }
};

I'm not sure what is happening but what about if you try this:我不确定发生了什么,但是如果您尝试这样做会怎样:

Since you are using the event object, you don't need to use getActiveSheet() .由于您使用的是事件对象,因此不需要使用getActiveSheet() Try using e.range.getSheet() .尝试使用e.range.getSheet()

Try getting the active spreadsheet first, calling it just once.首先尝试获取活动电子表格,只调用一次。

function onEdit(e) {
  // console.log(JSON.stringify(e));
  let eSheet = SpreadsheetApp.getActiveSpreadsheet();
  if ((eSheet.getActiveSheet().getSheetName() == "Home") && (e.value == "TRUE") && (e.range.columnStart > 2) && (e.range.columnStart < 8) && (e.range.rowStart == 8)) {
    // Makes sure no other checkboxes are on
    for (var i = 3; i < 8; i++) {
      if (i == e.range.columnStart) continue;
      eSheet.getActiveSheet().getRange(e.range.rowStart, i).setValue(false);
    }
  }
}

It does not change the cursor from the active cell.它不会更改活动单元格的光标。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM