【问题标题】:Onedit setvalues does not copy code values, only user input is copiedonedit setvalues 不复制代码值,只复制用户输入
【发布时间】:2021-06-17 22:11:52
【问题描述】:

https://docs.google.com/spreadsheets/d/1rGns0DGQbjlEpxTbdy1T_-m2oh7eK8tM9xyDzGqahJo/edit?usp=sharing

所以我有这个代码,谢天谢地,我从互联网上得到了这个代码,但我似乎无法从填充空单元格的代码中复制“C”列中的其他值,提供的表格供参考。

function ss1OnEdit(e){
  if(e.range.getSheet().getName()!='source_sheet') return;
  SpreadsheetApp.openById("1rGns0DGQbjlEpxTbdy1T_-m2oh7eK8tM9xyDzGqahJo").getSheetByName("target_sheet").getRange(e.range.getA1Notation()).setValue(e.value);
}
//You can run this function all you want it will not create more than one trigger.  But you must run it once to setup the first trigger.
function createSS1OnEditTrigger() {
  var ss=SpreadsheetApp.getActive();
  var trgs=ScriptApp.getProjectTriggers();
  var found=false;
  for(var i=0;i<trgs.length;i++) {
    if(trgs[i].getHandlerFunction()=="ss1OnEdit") {
      return;
    }
  }
  if(!found) {
    ScriptApp.newTrigger("ss1OnEdit").forSpreadsheet(ss.getId()).onEdit().create();
  }
}

此代码仅设置手动输入的值。如果我们可以让它从代码输入中设置单元格值,我将不胜感激。

我一直在阅读有关此内容和 getdisplayvalue() 的信息,但到目前为止对我没有任何帮助。

谢谢!

【问题讨论】:

  • onEdit 触发器仅在用户编辑时触发。

标签: javascript google-apps-script google-sheets triggers


【解决方案1】:

我认为您的问题是为什么用户输入会触发触发器,但 Range.setValues() 不会。如果这是正确的,那么它就像simple trigger docs 上所写的那样工作:«onEdit(e) 在用户更改电子表格中的值时运行»。因此,用户更改会触发触发器,但脚本更改不会。

【讨论】:

  • 以上代码目前服务于数据库的一部分。但是我也想为代码输入设置值,因为我已经自动化了很多程序因此请求。感谢您的回复雅克谢谢!
  • 非常感谢。我的回答与原始问题有关,如果您确实需要第二个问题的答案,我强烈建议您打开一个新问题。
  • 谢谢你的回复雅克,我又问了一个问题,希望这次我能把问题澄清一点。谢谢你的时间:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 2019-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多