如何使用按钮运行onEdit功能

时间:2018-04-08 16:26:33

标签: google-apps-script

当频繁断开互联网时,我的onEdit功能不起作用。 我想将它分配给一个按钮,这样当有互联网可用时,我会按下按钮并完成它。 我也尝试更改功能名称,但仍然无法使用按钮执行其工作。如何在没有按钮的情况下工作

function onEdit(evt) {
try {
if( evt.range.getSheet().getName() === "invoice" ) {
  // Qty is in column F
  if( ( evt.range.getRow() > 7 ) && ( evt.range.getRow() < 29 ) && ( 
evt.range.getColumn() === 6 ) ) {
    var sheet = evt.source.getSheetByName("stock");
    var range = sheet.getDataRange();
    var stock = range.getValues();
    for( var i=0; i<stock.length; i++ ) {
      // Compare to column B
      if( stock[i][0] === evt.range.offset(0,-4,1,1).getValue() ) {
        range.offset(i,2,1,1).setValue(evt.value);
        return
      }
    }
        //this alert no need if this function assigned to a button
    SpreadsheetApp.getUi().alert("Item 
<"+evt.range.offset(0,-4,1,1).getValue()+"> not found!");
  }
 }
 }
catch(err) {
Logger.log(err);
}
}

1 个答案:

答案 0 :(得分:0)

您可以创建custom menu来手动运行代码。在此示例中,假设您的onEdit()函数现在称为doSomething()

// The onOpen function is executed automatically every time a Spreadsheet is loaded
function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [];
  menuEntries.push({name: "Do Something", functionName: "doSomething"});
  ss.addMenu("Custom Menu", menuEntries);
}

您将不得不重写您的脚本,使其不依赖于evt,因为它将不再可用。