导出/保存数据到列内的下一个可用行



我希望将数据从特定单元格保存到另一个工作表。在上面说的表,我需要它保存到下一个可用的行在一个已定义的列。我有下面的脚本,将数据保存到下一个可用的行,但不确定如何定义列。在下面的例子中,我需要将它保存到'A'列中。

function transferList() {
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cancellations");
var sourceData = sourceSheet.getRange("D5").getValues();
var targetSS = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet12");
var targetRangeTop = targetSS.getLastRow();
targetSS.getRange(targetRangeTop+1,1,sourceData.length,sourceData[0].length).setValues(sourceData);
}

Issue:

如果我理解正确的话,您要将此写入特定列的第一个空单元格(可能不对应于工作表中的第一个空行)。

解决方案:

我建议使用Range。getNextDataCell查找第一个空单元格之前的最后一个单元格,以及Range。偏移量得到空的

代码示例:

function transferList() {
var columnIndex = 1; // Column A
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName("Cancellations");
var sourceData = sourceSheet.getRange("D5").getValue();
var targetSS = ss.getSheetByName("Sheet12");
var a1Range = targetSS.getRange(1,columnIndex);
var targetRange;
if (a1Range.offset(1,0).getValue() !== "") targetRange = a1Range.getNextDataCell(SpreadsheetApp.Direction.DOWN).offset(1,0);
else targetRange = targetSS.getRange(2,columnIndex);
targetRange.setValue(sourceData);
}

注意:

由于您从单个单元格获得值,因此不需要使用getValuessetValues;你可以用getValue和setValue来代替。

相关内容

最新更新