【问题标题】:Google script .setFormula does not work well with proposed trigger for dawnGoogle 脚本 .setFormula 不适用于建议的黎明触发器
【发布时间】:2021-05-21 11:55:17
【问题描述】:

嗨,伙计们,我创建了一个脚本以在特定范围内插入公式,并为此脚本创建了一个触发器,使其在 01:00 到 02:00 AM 之间运行,目标是让它使用公式订阅值和然后我可以通过粘贴结果值来执行相同的过程,但是,公式不会更新,并且当粘贴值的脚本运行时,它会粘贴加载信息,你能帮我解决吗?

Code

Trigger

function Formulas() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('CONTROLE DE CUSTOS');
  var lastRow = sheet.getLastRow()-1;
  sheet.getRange(2,8,lastRow,3).clearContent();
  sheet.getRange(2,8,lastRow,1).activate();
  spreadsheet.getActiveRange().setFormula('=SUM(QUERY(IMPORTRANGE("1RwCb30zr22uuIJUgeIrB9KMgxI2JgtSBKzQC0okI5yE";"Banco de Dados!A:F");"select Col4 where Col3 = \'"&INDIRECT(CONCATENATE("C";ROW()))&"\'"))');
  sheet.getRange(2,9,lastRow,1).activate();
  spreadsheet.getActiveRange().setFormula('=SUM(QUERY(IMPORTRANGE("1RwCb30zr22uuIJUgeIrB9KMgxI2JgtSBKzQC0okI5yE";"Banco de Dados!A:F");"select Col6 where Col3 = \'"&INDIRECT(CONCATENATE("C";ROW()))&"\'"))');
  sheet.getRange(2,10,lastRow,1).activate();
  spreadsheet.getActiveRange().setFormula('=IF(indirect(concatenate("F";row()))=0;0;(VLOOKUP(MID(indirect(concatenate("C";row()));find("[";indirect(concatenate("C";row()));2);500);TEMPLATE!A:E;5;0)*indirect(concatenate("F";row()))))');
  SpreadsheetApp.flush();
};

【问题讨论】:

  • 您好,您可以将您的代码粘贴到代码 sn-p 中吗? :)
  • 你好,当然! ;)

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


【解决方案1】:

试试这个方法:

function Formulas() {
  var ss = SpreadsheetApp.getActive();
  var sh = ss.getSheetByName('CONTROLE DE CUSTOS');
  var numrows = sh.getLastRow()-1;
  sh.getRange(2,8,numrows,3).clearContent();
  sh.getRange(2,8,numrows,1).setFormula('=SUM(QUERY(IMPORTRANGE("1RwCb30zr22uuIJUgeIrB9KMgxI2JgtSBKzQC0okI5yE";"Banco de Dados!A:F");"select Col4 where Col3 = \'"&INDIRECT(CONCATENATE("C";ROW()))&"\'"))');
  sh.getRange(2,9,numrows,1).setFormula('=SUM(QUERY(IMPORTRANGE("1RwCb30zr22uuIJUgeIrB9KMgxI2JgtSBKzQC0okI5yE";"Banco de Dados!A:F");"select Col6 where Col3 = \'"&INDIRECT(CONCATENATE("C";ROW()))&"\'"))');
  sh.getRange(2,10,numrows,1).setFormula('=IF(indirect(concatenate("F";row()))=0;0;(VLOOKUP(MID(indirect(concatenate("C";row()));find("[";indirect(concatenate("C";row()));2);500);TEMPLATE!A:E;5;0)*indirect(concatenate("F";row()))))');
  SpreadsheetApp.flush();
}

【讨论】:

  • 完美!我会试着告诉你结果。非常感谢。
猜你喜欢
  • 2018-03-20
  • 1970-01-01
  • 1970-01-01
  • 2016-12-08
  • 2020-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多