2

代码.gs

var runSelect = true
function onSelectionChange(e) {
  var sheet = SpreadsheetApp.getActiveSheet()
  var range = e.range;
  var column = range.getColumn();
  var lastRow = sheet.getLastRow();
  var ui = SpreadsheetApp.getUi();
  if (runSelect == true) {
    sheet.getRange(5, column, lastRow-4).activate();
    sheet.getRange(1, column).copyTo(sheet.getActiveRange());
    ui.alert("Finnish")

我试图改变我的选择,但警告永远不会显示,也不会复制

4

4 回答 4

3

这很有效,它也可以用于在过去的问题中单击单元格时想要触发事件的人。

function onSelectionChange(e) {
  var sh=e.range.getSheet();
  e.source.toast('Sheet: ' + sh.getName() + ' Range: ' + e.range.getA1Notation());  
}
于 2020-05-21T22:38:58.800 回答
1

根据https://developers.google.com/apps-script/reference/base/ui.html alert(prompt) 不需要授权。可能未执行 onSelectionChange 触发器并且您正在使用新的 V8 运行时。使用旧版运行时,而不是 V8 运行时。在我的情况下,使用 V8 运行时有时会触发,有时不会。V8 中的触发器执行存在一般问题,请参阅https://issuetracker.google.com/issues/147016387

于 2020-06-17T07:11:43.043 回答
1

同样的问题发生在我身上。我从编辑器手动运行代码,它要求授权。我授权它和中提琴!现在 onSelectionChange 触发器起作用了!希望对路过的人有帮助...

于 2021-03-25T17:44:40.203 回答
1

我刚刚在一个新电子表格上遇到了同样的问题,一个新项目只有一个非常简单的onSelectionChange

function onSelectionChange(e) {
  console.log(JSON.stringify(e));
}

重新打开电子表格(刷新网络浏览器选项卡)后,onSelectionChange工作正常。

于 2021-12-18T20:59:28.563 回答