Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script getLastRow()影响其他单元格_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script getLastRow()影响其他单元格

Google apps script getLastRow()影响其他单元格,google-apps-script,google-sheets,Google Apps Script,Google Sheets,你好,我目前在一个时间跟踪系统上工作。使用下面的代码,我跟踪值在单元格中的时间长度。此时间记录在另一个工作表中,并由appendRow()连续完成 现在有一张图片显示我的问题: 问题是单元格应该从第1行开始,是否可以使用getLastRow()?更容易更改时间公式,使其不显示任何内容,除非有条目,否则getLastRow()将正常工作。要获得这方面的帮助,请共享计算时间的公式。更容易更改时间公式,使其不显示任何内容,除非有条目,否则getLastRow()将正常工作。有关这方面的帮助,请分享计

你好,我目前在一个时间跟踪系统上工作。使用下面的代码,我跟踪值在单元格中的时间长度。此时间记录在另一个工作表中,并由appendRow()连续完成

现在有一张图片显示我的问题:


问题是单元格应该从第1行开始,是否可以使用getLastRow()?

更容易更改时间公式,使其不显示任何内容,除非有条目,否则getLastRow()将正常工作。要获得这方面的帮助,请共享计算时间的公式。

更容易更改时间公式,使其不显示任何内容,除非有条目,否则getLastRow()将正常工作。有关这方面的帮助,请分享计算时间的公式。

(例如A列):

(如A栏):


计算时间的公式在其余行中仅为=D2-C2,依此类推。请尝试此方法:=IF(D2,D2-C2,)不幸的是,这不会改变任何东西。计算时间的公式在其余行中仅为=D2-C2,依此类推。请尝试此方法:=IF(D2,D2-C2,)不幸的是,这不会改变任何东西,除了最后一个日期再次输入在下面,而不是在“开始日期”旁边。[链接]()正如你在这张照片中看到的。@Lamafahrard嗯,你确定之前没有那个日期吗?代码不应该在那里添加日期。请删除它,然后重试。它对您有效吗?我用同样的问题再试了一次。@Lamafahrad也用
rowA-1
替换
targetSheet.getLastRow()
。如果这不起作用,请立即共享工作表副本,但仅与rowA not-1共享。THX工作正常,但最后一个日期再次输入到下方,而不是“开始日期”旁边。[链接]()正如你在这张照片中看到的。@Lamafahrard嗯,你确定之前没有那个日期吗?代码不应该在那里添加日期。请删除它,然后重试。它对您有效吗?我用同样的问题再试了一次。@Lamafahrad也用
rowA-1
替换
targetSheet.getLastRow()
。如果这不起作用,请立即共享工作表副本,但仅与rowA not-1共享。谢谢
function onEdit(e) {
  addTimestamp(e);
}

function addTimestamp(e) {
  var ui = SpreadsheetApp.getUi();
  var ws = "Tabellenblatt2";
  var ss = e.source;
  var targetSheet = ss.getSheetByName("Tabellenblatt1");
  var range = targetSheet.getRange(3, 2, 1000, 1);
  var currentDate = new Date();
  var scriptProperties = PropertiesService.getScriptProperties();
  if (e.source.getActiveSheet().getName() === ws) {
    var cell = ss.getActiveCell();
    var val = cell.getValue();
    var sourceRowIndex = cell.getRow();
    if (val != "") {
      let rowToAdd = [val, "", currentDate, ""]
      targetSheet.appendRow(rowToAdd);
      scriptProperties.setProperty(sourceRowIndex, targetSheet.getLastRow());
    } else {
      var rowIndex = Number(scriptProperties.getProperty(sourceRowIndex));
      if (rowIndex) targetSheet.getRange(rowIndex, 4).setValue(currentDate);
    }
  }
}

function onEdit(e) {
  addTimestamp(e);
}

function addTimestamp(e) {
  var ui = SpreadsheetApp.getUi();
  var ws = "Tabellenblatt2";
  var ss = e.source;
  var targetSheet = ss.getSheetByName("Tabellenblatt1");
  var range = targetSheet.getRange(3, 2, 1000, 1);
  var currentDate = new Date();
  var scriptProperties = PropertiesService.getScriptProperties();
  if (e.source.getActiveSheet().getName() === ws) {
    var cell = ss.getActiveCell();
    var val = cell.getValue();
    var sourceRowIndex = cell.getRow();
    if (val != "") {
      let rowToAdd = [val, "", currentDate, ""]
      let rowA=targetSheet.getRange("A1:A").getValues().filter(String).length+1; // new code
      targetSheet.getRange(rowA,1,1,rowToAdd.length).setValues([rowToAdd]); // new code
      scriptProperties.setProperty(sourceRowIndex, targetSheet.getLastRow());
    } else {
      var rowIndex = Number(scriptProperties.getProperty(sourceRowIndex));
      if (rowIndex) targetSheet.getRange(rowIndex, 4).setValue(currentDate);
    }
  }
}