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