【问题标题】:Google Sheets Script Needed: On Insert_Row, set multiple formulas需要 Google 表格脚本:在 Insert_Row 上,设置多个公式
【发布时间】:2017-08-31 16:25:26
【问题描述】:

这里是 Google Apps 脚本新手,

我有一个 IFTTT 小程序,它通过电子邮件向此电子表格添加一行:Data Test

我似乎正确设置了公式,但是当添加新行时,公式显然不会自动填充到该新行中。当插入一行时,其中 A 列和 B 列中的相应单元格不为空,我想在该行中设置某些公式。

到目前为止,我的脚本(见下文)确实给了我想要的公式,但只在第 1 行。 我希望脚本将这些相同的公式设置到插入的任何新行的相应单元格中。

例如,如果我要在第 5 行之后插入一个空白行(即创建一个新的第 6 行),那么公式将出现在 C6:H6 中

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var cell = sheet.getRange("C1");
  cell.setFormula('=IFERROR(MID($B2,SEARCH("details",$B2)+7,SEARCH(",",$B2)-SEARCH("details",$B2)-7),HYPERLINK("https://housing.sfgov.org/listings","See Housing Portal"))');
  var cell = sheet.getRange("D1");
  cell.setFormula('=IFERROR(TRIM(LEFT(SUBSTITUTE(MID(B2,FIND("$",B2),LEN(B2))," ",REPT(" ",100)),100)),HYPERLINK("https://housing.sfgov.org/listings","See Housing Portal"))');
  var cell = sheet.getRange("E1");
  cell.setFormula('=IFERROR(MID($B2,SEARCH("exceed",$B2)+7,SEARCH("%",$B2)-SEARCH("exceed",$B2)-6),HYPERLINK("https://housing.sfgov.org/listings","See Housing Portal"))');
  var cell = sheet.getRange("F1");
  cell.setFormula('=IFERROR(MID($B2,SEARCH("due",$B2)+3,SEARCH(";",$B2)-SEARCH("due",$B2)-3),HYPERLINK("https://housing.sfgov.org/listings","See Housing Portal"))');
  var cell = sheet.getRange("G1");
  cell.setFormula('=IFERROR(MID($B2,SEARCH("held on",$B2)+7,SEARCH(". Lottery",$B2)-SEARCH("held on",$B2)-7),HYPERLINK("https://housing.sfgov.org/listings","See Housing Portal"))');
  var cell = sheet.getRange("H1");
  cell.setFormula('=IFERROR(MID($B2,SEARCH("posted by",$B2)+9,SEARCH(". ",$B2)-SEARCH("",$B2)-167),HYPERLINK("https://housing.sfgov.org/listings","See Housing Portal"))');

}

任何帮助将不胜感激!

【问题讨论】:

  • 我建议你阅读这个documentation,它写得很好,组织得很好。当你读完之后,试着自己写脚本,如果你有任何问题,请把你所做的事情带回来,然后我们可以帮助你。
  • 看起来写得很好,组织得很好。然而,它对我来说仍然像希腊语。谁能帮我入门?
  • 首先编写一个脚本来设置公式,然后添加一个 onEdit 触发器。

标签: google-apps-script google-sheets


【解决方案1】:

这是您脚本的开始。这是您将公式分配给单元格的方式。

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var cell = sheet.getRange("C1");
  cell.setFormula('=IFERROR(MID($B2,SEARCH("details",$B2)+7,SEARCH(",",$B2)-SEARCH("details",$B2)-7),HYPERLINK("https://housing.sfgov.org/listings","See Housing Portal"))');
}

【讨论】:

  • 这绝对是一个很好的开始!添加了基于@OblongMedulla 的编辑。还不是我需要的。
  • 想知道@Cooper 是否可以插话?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多