我知道以前已经做过,但是我正在努力使我的工作正常,我想将所有数据从“模板”工作表复制到“历史”工作表。
我想将值发送到历史记录表底部的新行中。
这是我的工作代码,我只需要更改设置值的位置即可。
var sheetTemplate = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Template');
var sheetHistory = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('History');
var getRange = sheetTemplate.getDataRange();
var DataCopied = SRange.getValues();
sheetHistory.getRange("a2:F7").setValues(DataCopied);
您正在使用getDataRange()和getValues()方法,这将返回二维数组中存在数据的对应值,因此当您使用setValues()将值复制到新工作表时,您需要考虑到检索到的数据的大小以便它们匹配,您需要:
DataCopied
数组的“高度” (行数)DataCopied.length
DataCopied
数组的“宽度” (列数)DataCopied[0].length
。DataCopied
使用setValues()设置的值您的代码应如下所示:
function myFunction(){
var sheetTemplate = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Template');
var sheetHistory = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('History');
var getRange = sheetTemplate.getDataRange();
var DataCopied = getRange.getValues();
// I defined the variables for better understanding
var startRow = sheetHistory.getLastRow()+1; // +1 because remember that while a range index starts at 1, 1, the JavaScript array will be indexed from [0][0].
var startColumn = 1;
var numRows = DataCopied.length;
var numColumns = DataCopied[0].length;
sheetHistory.getRange(startRow, startColumn, numRows, numColumns).setValues(DataCopied);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句