【发布时间】:2021-05-21 16:31:41
【问题描述】:
较新的 google sheet/java 脚本.. 在下面的函数中,它正确地从源表中获取数据并将其正确输入到目标上的下一个可用单元格中。但是,我在整个工作表的 F 列单元格中有一个公式。随着 getLastRow 的工作,数据被粘贴到工作表的下方。我需要将哪些内容更改为以下函数中的内容以忽略检查中的 F 列?
function CopyTime() {
var sourceSheet = "Data";
var sourceCell = "E61";
var destinationSheet = "Log";
var destinationCell = "E6";
var ss = SpreadsheetApp.getActive();
var sourceValue = ss.getSheetByName(sourceSheet).getRange(sourceCell).getValue();
var destSheet = ss.getSheetByName(destinationSheet);
var destRange = destSheet.getRange(destinationCell);
var destRow = destRange.getRow();
var destCol = destRange.getColumn();
var destValues = destSheet.getRange(destRow, destCol, Math.max(1, destSheet.getLastRow() - destRow + 1)).getValues();
for (var i = destValues.length - 1; i >= 0; i--) {
if (destValues[i]) break;
}
if (destValues[i] != "") i = i + 1;
destSheet.getRange(destRow + i, destCol).setValue(sourceValue);
}
【问题讨论】:
-
我看不到函数在哪里与 F 列交互。
-
是的,这就是问题所在,我没有告诉它。 F 列只有一个公式,它从 E 列的相邻单元格中获取数据并输出一个值。但如果有公式,则 E 值将写入下一行。
-
除非你能更好地解释或提供正在发生的事情的例子,否则我无法帮助你。
-
Ok Ill try... 上面的函数从数据表中获取一个值,然后将内容复制到日志表,预计将粘贴到下一个可用行的 E 列。假设下一个可用行是 6,因为 E6 中当前没有数据。如果在运行上述函数时 F6 中有公式,则数据不会进入 E6,而是输入 E7 或下一行没有 F 中的公式。在我的工作表中,我有公式进入 F 列,单元格 1-20。如果我运行上面的 E 列函数,数据将输入到 E21 中。这有帮助吗?
-
为什么因为公式不去E6?公式是什么?