根据单元格值设置getSheetbyName

时间:2017-12-07 21:40:38

标签: google-apps-script google-sheets

我不是一个程序员,但设法拼凑了一个脚本,似乎无法让最后一部分工作。我想将activelog字符串传递给日志,感觉这是一个我忽略的简单语法问题:

var activelog = e.source.getSheetByName("SHEET1").getRange("A1").getValue();
var log = e.source.getSheetByName(activelog);

Activelog获取Sheet1上包含所有相关工作表列表的下拉菜单单元格A1的值。然后,如果在Sheet1的B1中键入了某些内容,则脚本会在C列中复制一个公式。现在指定工作表名称“LOG”工作正常:

function onEdit(e) {
    var activelog = e.source.getSheetByName("SHEET1").getRange("A1").getValue();
    var log = e.source.getSheetByName("LOG");
    var lr = log.getLastRow();
    var fdr = log.getRange(1,23,lr);
    var formula = "";

    if (e.source.getActiveSheet().getName() !== "SHEET1" || e.range.rowStart != 1 || e.range.columnStart != 2 ) return
    log.getRange("C1").setFormula(formula);log.getRange("C1").copyTo(fdr);
}

2 个答案:

答案 0 :(得分:1)

如果表格为空,则var keyword = req.query.keyword; var **filterby** = req.query.id; Client.find({ $and: [{ "firstname": new RegExp('^' + keyword + '$', "i") }, { userid: **filterby** } ] } 将返回var lr = log.getLastRow()。然后当0尝试log.getRange(1,23,lr)时,它会出错,因为它是无效范围。

如果工作表为空,请添加getRange(1,23,0)log.getLastRow() || 1;设置为lr

1

答案 1 :(得分:0)

在最后一行返回后,您错过了;。 现在,如果范围不正确并且它符合您的条件,则会return log.getRange("C1").setFormula(formula);

如果它没有输入if,那么它只是log.getRange("C1").copyTo(fdr);而没有先设置公式