簡體   English   中英

Google Sheet(腳本)將Sheet復制到另一個SpreadSheet並在目標SS中命名新工作表

[英]Google Sheet (Script) copy Sheet to another SpreadSheet and name new sheet in target SS

我的腳本不太好,因為我開始了,所以我想從一個電子表格(源)復制一張表格,並通過創建一個新表格(在目標 SS 中)將它復制到我的目標電子表格,並用我在單元格 C9 中的值命名在我的源表中......

實際上,新工作表是使用新名稱創建的,但在目標工作表中沒有復制。 問題似乎是我的 .copyTo(targetrange) ......我嘗試了很多想法,但沒有任何效果。

你能幫助我嗎!

function CopyToSpreadSheet() {

//Source sheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName("Reception");
//Name new sheet in target SpreadSheet from value in cell C9
var nameSheet = sourceSheet.getRange(9, 3).getValue();

    //open target SpreadSheet
    var target = SpreadsheetApp.openById('SpreadSheet_Id');
    var newSheet = target.insertSheet();
    var Sheetname = newSheet.setName(nameSheet).getSheetName();
    //CopyTo...  
    var targetSheet = target.getSheetByName(nameSheet);
    var targetrange = targetSheet.getRange(1, 1, targetSheet.getLastRow()+1, targetSheet.getLastColumn()+1);
    var sourceRange = sourceSheet.getRange(1, 1, 80, 15).copyTo(targetrange).getValues();
    targetrange.setValues(sourceRange);
    
    
    return;
    
}```

解決方案

copyTo方法可用於工作表對象和范圍對象。 如果你想在 Range 實例上使用它,就像你在做的那樣:

    var sourceRange = sourceSheet.getRange(1, 1, 80, 15).copyTo(targetrange).getValues();

它有一個限制:您不能將范圍復制到不同的電子表格。

建議修改

您可以使用 Sheet 實例的copyTo方法來實現所需的結果:

function CopyToSpreadSheet() {

  //Source sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName("Reception");
  //Name new sheet in target SpreadSheet from value in cell C9
  var nameSheet = sourceSheet.getRange(9, 3).getValue();

  //open target SpreadSheet
  var target = SpreadsheetApp.openById('target-sheet-id');

  //CopyTo...
  var targetSheet = sourceSheet.copyTo(target);
  targetSheet.setName(nameSheet);
    
  return;
}

參考

工作表復制到

我喜歡這個腳本;)

是否也可以僅將帶有復選框的數據行復制到新電子表格中,即如果復選框被標記然后我單擊創建新電子表格,那么只會復制單擊的行?

謝謝邁克

暫無
暫無

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

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