可安装在可在一个单元格上触发,从另一个单元格获取数据并在第三个单元格中写入数据的Edit触发器上

有营养的

我正在使用一个函数通过onEdit可安装触发器收集Google云端硬盘URL的文件名(感谢@Tanaike在此问题中的建议):

function FileName(e) {
    const sheetName = "Página1";
    const range = e.range;
    const sheet = range.getSheet();
    if (!(sheet.getSheetName() == sheetName && range.getColumn() == 2 && range.getRow() > 1)) return;
    const value = range.getValue();
    let res = "";
    try {
      res = DriveApp.getFileById(value).getName();
    } catch(e) {
      res = e.message;
    }
    range.offset(0, 1).setValue(res);
  }

我需要找到一种方法来适应它,并在另一个单元格的版本中激活触发器,此示例步骤如下:

a)我更改C2并激活触发器,

b)该函数在B2中获取文件ID,识别该文件并将其放入D2中。

这是样本表

编辑

因此,问题是:上面的代码激活了触发器,并在同一单元格B2中获取了文件ID。如何使其在C2中激活编辑触发器并在B2中获得文件ID?

马里奥斯

说明:

  • 我认为您的目标是在column中的编辑时触发此功能,CD根据column中的值设置column中的值B

  • 如果要获取column的C更改,请将if语句中的check修改为

    range.getColumn() == 3

  • 但是,由于您现在想获取column中的值B,请使用:

    const value = sheet.getRange(range.getRow(),range.getColumn()-1).getValue()

  • 这行将range.offset(0, 1).setValue(res)设置column中的值D

解:

function FileName(e) {
    const sheetName = "Página1";
    const range = e.range;
    const sheet = range.getSheet();
    if (!(sheet.getSheetName() == sheetName && range.getColumn() == 3 && range.getRow() > 1)) return;
    const value = sheet.getRange(range.getRow(),range.getColumn()-1).getValue();

    let res = "";
    try {
      res = DriveApp.getFileById(value).getName();
    } catch(e) {
      res = e.message;
    }
    range.offset(0, 1).setValue(res);
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档