【问题标题】:onEdit(e) DriveApp.getFileByIdonEdit(e) DriveApp.getFileById
【发布时间】:2016-10-12 17:04:22
【问题描述】:

在以下工作中遇到问题。
目的是编辑以将信息从活动工作表的一个或多个特定单元格推送到单独工作表上的特定单元格。 注意:我是谷歌表格的新手

function onEdit(e) {
    var source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Working");
    var cell = source .getActiveCell();    
    if (cell.getRow() == 9 && cell.getColumn() == 2) {
        var target = DriveApp.getFileById("1biaIVlafaNQTHjtR8ctASCpDmC2O1wwfJfAUCmzIztI")
           .getSheetByName("Master_Sheet");
        target.getRange("A1").setValue(cell.getValue());
    }
}

【问题讨论】:

  • 我不赞成这个问题,因为它没有显示任何研究工作。请拨打tour 并结帐How to Ask

标签: google-apps-script google-sheets


【解决方案1】:

它不起作用的原因是因为您使用的是onEdit()。这是一个简单的触发器,只要您编辑工作表就会触发。由于简单触发器无法执行需要授权的操作,因此您仅限于仅在电子表格中工作,并且无法访问任何其他文件。

阅读限制here

【讨论】:

  • 我不这么认为。它可以用 if 语句做更多的事情。
【解决方案2】:

我现在可以使用以下代码将信息推送到目标工作表。

function myFunction() {
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Source");
  var sourceData = sourceSheet.getRange("A3:C3").getValues();
  sourceData.splice(0,1);  // Remove header
  var targetSS = SpreadsheetApp.openById("1pyJzZ86WDh2FNXFufUAt2SkAUod32i7AzvG0EKmnvEU").getSheetByName("Destination");
  var targetRangeTop = targetSS.getLastRow(); // Get # rows currently in target
  targetSS.getRange(targetRangeTop+1,1,sourceData.length,sourceData[0].length).setValues(sourceData); 

};

【讨论】:

  • 现在可以将信息推送到另一张纸上,我需要解决原始问题。将信息从“源”工作表范围“A3:AA3”发送到“目标”工作表,其中目标行 =“源”工作表“B2”和目标列“AA:AB”。我假设该列将使用 Offset() 处理。只是不知道如何组合起来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
相关资源
最近更新 更多