簡體   English   中英

進行編輯后,如何將范圍從一個Google表格復制到另一個表格?

[英]How do I copy a range from one Google Sheet to another when edits are made?

我有一張工作表,該工作表將根據使用importfeed()的RSS feed中的新文章進行更新,並使用importxml()分析URL。 問題是數據總是在變化,我想從importfeed()函數中存檔舊數據。 我只想將最新數據從一張紙移動到另一張紙,而不會覆蓋任何內容。

以下是示例代碼,來自: https : //stackoverflow.com/users/650206/jeremy

function myFunction() {
// Get Spreadsheets
var source = SpreadsheetApp.openById("spreadsheetKeySource");
var target = SpreadsheetApp.openById("spreadsheetKeyTarget");

// Set Sheets
var source_sheet = source.getSheetByName("Sheet1");
var target_sheet = target.getSheetByName("Sheet1");

// Get target last row
var last_row = target_sheet.getLastRow();

// Set Ranges
var source_range = source_sheet.getRange("A1:B1");
var target_range = target_sheet.getRange("A"+(last_row+1)+":B"+(last_row+1));

// Fetch values
var values = source_range.getValues();

// Save to spreadsheet

   target_range.setValues(values);
}

上面代碼的問題是,當我需要它選擇整個范圍(例如A1:G55)並將其粘貼到另一張表中的舊數據下方時,它僅選擇一行。

任何幫助將非常感激!

編輯

更改時出現的錯誤:

var source_range = source_sheet.getRange("A1:B1");
var target_range = target_sheet.getRange("A"+(last_row+1)+":B"+(last_row+1));

至:

var source_range = source_sheet.getRange("A1:G25");
var target_range = target_sheet.getRange("A"+(last_row+1)+":G"+(last_row+1));

是“范圍高度不正確,為5,但應為1(第21行,文件“代碼”))

這是這段代碼:

target_range.setValues(values);
var source_range = source_sheet.getRange("A1:G25");
var target_range = target_sheet.getRange("A"+(last_row+1)+":G"+(last_row+1));

上面的幾行嘗試復制25行數據並將其粘貼到一行中。 錯誤消息顯示“是5但應為1”使我感到驚訝。 我曾期望它說“是25,但應為1”。

嘗試以下方法:

var source_range = source_sheet.getRange("A1:G25");
var target_range = target_sheet.getRange("A"+(last_row+1)+":G"+(last_row+25));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM