如何从特定触发器的特定单元格中提取数据?

How can I extract data from specific cells on a specific trigger?

我被要求做一个 Google 传播sheet 做以下事情,我不知道如何做到这一点:

我在一家汽车经销商工作,我们跟踪共享 Google 价差sheet 的实时销售情况。他们在交易开始时继续 sheet,并在销售完成时被移除(删除)。每个订单项(交易)都有一个下拉单元格(G 列),其中包含不同的交易状态。其中一种状态是“缺少文档”,这意味着销售团队没有提供生成合同所需的所有文档。我们想跟踪谁 运行 文档丢失率高,所以我们认为当在一行中选择“丢失文档”时,脚本将自动 运行 并快照客户名称(列A), Stock Number (B列), Sales Person Name (Column D) and Issues Notes (column I), 然后将该数据拖放到另一个工作中sheet以保存历史数据记录。

如果能帮助构建执行此功能的脚本,我们将不胜感激!

试试这个:

function getMissingDocs() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName("SheetName");
  const osh = ss.getSheetByName("outputSheetName");
  const vs = sh.getDataRange().getValues().filter(r => r[6] == "Missing Docs").map(r => [r[0],r[1],r[3],r[8]]);
  Logger.log(JSON.stringify(vs));
  osh.clearContents();
  osh.getRange(1,1, vs.length, vs[0].length).setValues(vs);
}

function onEdit(e) {
  const sh = e.range.getSheet();
  if (sh.getName() == "Sheet Name" && e.range.columnStart == 7 && e.value == "Missing Docs") {
    getMissingDocs();
  }
}

如果您有其他 onEdit 函数,您需要将它们集成到一个函数中,或者另一种选择是重命名它并使用可安装的 onEdit 函数。