![](/img/trans.png)
[英]How to copy spreadsheet's sheet into another spreadsheet without creating a new sheet copy when using google sheet script?
[英]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.