情況:彙總來自多個接收器Trixes的信息並嘗試將饋送器的結果填充到主Trix的一張表中。將數據從多個其他工作表中寫入主Google電子表格;覆蓋每個接料表的結果,而不是獲得所有結果
問題:我想寫下每個饋線trix的結果(用下面的get_data_from_feeders()函數收集)到Master Trix中的同一張紙上。但是,每個饋線陣列會覆蓋之前的饋線結果,因此只有最後一個饋線trix結果顯示在Master Trix中,而不是以下全部三種(write_data(數據)功能)。
問題:
1)如何讓每個饋線的結果集追加以前饋線TRIX結果,而不是覆蓋它們的? [這將每月運行,所以每個月都可以覆蓋上個月的表單內容]
2)如何對所有結果進行排序(我認爲我使用.sort()但我不確定在哪裏打電話)?
當前代碼:
function get_data_from_feeders() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var feeders = ss.getRangeByName('spokes').getValues();
for (var i = 0; i <= feeders.length; i++) {
var feeder_id = feeders[i][0];
var feeder_open = SpreadsheetApp.openById(feeder_id);
var dataPull = feeder_open.getRangeByName('dataPull').getValues();
write_data(dataPull);
}
}
function write_data(data) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ws = ss.getSheetByName("Forecast_Aggregation");
var dataDump = ss.getRangeByName("data_dump");
// I think the next line is where my code is incorrect - each feeder goes back to same cell instead of to the next blank row (hence, overwriting instead of appending)
ws.getRange(dataDump.getRowIndex(), 2, data.length, 20).setValues(data);
}
感謝您的幫助!
謝謝,@AdamL!我昨天一直在努力,並提出了一個類似的解決方案,但我喜歡你如何保持命名範圍完好無損。我發現爲dataDump動態範圍而不是命名範圍更容易,因此我更改了代碼以刪除dataDump並將其替換爲:var firstEmptyRow = ws.getLastRow()+ 1和ws.getRange(firstEmptyRow, 2,data.length,data.length [0])。setValues(data);',哪些工作。 – khayes 2012-08-02 18:56:25