![](/img/trans.png)
[英]To copy Cell values from a range and paste it in a single row of another sheet
[英]Copy values from 1 sheet and set values to last row of another sheet
我知道以前已經做過,但是我正在努力使我的工作正常,我想將所有數據從表“模板”復制到“歷史”表。
我想將值發送到歷史記錄表底部的新行中。
這是我的工作代碼,我只需要更改設置值的位置。
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
的值 您的代碼應如下所示:
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.