Google apps script 如何在用户选择的目标电子表格上复制工作表并复制数据
我对谷歌应用程序脚本非常陌生,在实现我的目标时遇到了困难 我有一个Google Sheets工作簿,允许用户:Google apps script 如何在用户选择的目标电子表格上复制工作表并复制数据,google-apps-script,google-sheets,google-apps,Google Apps Script,Google Sheets,Google Apps,我对谷歌应用程序脚本非常陌生,在实现我的目标时遇到了困难 我有一个Google Sheets工作簿,允许用户: 从下拉列表中选择一个名称(每个名称都有一个唯一的/单独的 与之关联的google工作簿URL) 键入所需的电子表格名称 按下“推纸”按钮 一旦用户按下按钮,我将尝试完成以下任务: 复制目标工作簿上已存在的工作表“模板-请勿修改”(与选定名称关联的URL) 将复制的工作表重命名为所需的电子表格名称 将范围A7:D150从原始工作簿上的工作表“跟踪器”复制到目标工作簿上新创建的工作表范围A
function cloneGoogleSheet() {
var sheet = SpreadsheetApp.getActiveSheet();
var name = sheet.getRange("B10").getValue();
var url = sheet.getRange("f5").getValue();
var tss = SpreadsheetApp.openByUrl(url);
tss.setActiveSheet(tss.getSheetByName('Template - Do Not Modify'));
tss.duplicateActiveSheet();
var activesheet = tss.getActiveSheet();
activesheet.setName(name);
}
我的问题是:
如果有人能告诉我正确的方法,我将不胜感激。谢谢 您尝试过使用“getSheetByName”吗 试试Armit Agarwal的教程:
function cloneGoogleSheet() {
var name = "labnol";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Template').copyTo(ss);
/* Before cloning the sheet, delete any previous copy */
var old = ss.getSheetByName(name);
if (old) ss.deleteSheet(old); // or old.setName(new Name);
SpreadsheetApp.flush(); // Utilities.sleep(2000);
sheet.setName(company);
/* Make the new sheet active */
ss.setActiveSheet(sheet);
}