我想知道是否有人可以给我一些建议。
我有一个主电子表格,用作模板。我写了一个脚本,可以从菜单中运行(使用addToUi
命令),该脚本可以复制模板电子表格。
问题在于脚本也被复制到了新的电子表格中,这也是我所不希望的。
有人可以建议解决此问题的方法吗?
我确实认为可能的方法是获取脚本以打开复制的模板并删除脚本,但不确定是否可行。
任何帮助都将不胜感激。
这是执行复制的功能。...
function createCopy() {
var myValue = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("B8").getValue();
var destinationFolder = DriveApp.getFolderById("xxxxxxxxxxxxxxxx");
DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId()).makeCopy(myValue,destinationFolder);
}
(单元格引用B8保留了我称为复制电子表格的值)。
答案 0 :(得分:0)
Rayden,我使用类似的功能将一张纸复制到一个新的电子表格中,并且不会拖拽脚本。 gDrive是电子表格的ID,tabName是要复制的单个工作表,Filename是副本的名称,目标是目标目录。
//******************************************************************************
//- This function takes a tab and makes it its own file
function tabToSheet(gDrive,tabName,fileName,destination){
var sh = SpreadsheetApp.openById(gDrive);
var ss = sh.getSheetByName(tabName);
//create a new document in the location given
var newSheet = SpreadsheetApp.create("TEMPDELETEME");
//copy the tab from current document to new document
ss.copyTo(newSheet);
var id = newSheet.getId();
newSheet.deleteSheet(newSheet.getSheetByName("Sheet1"));
os = newSheet.getSheets()[0];
os.setName(tabName);
var file = DriveApp.getFileById(id);
var folder = DriveApp.getFolderById(destination);
var finalId = file.makeCopy(fileName, folder).getId();
file.setTrashed(true);
return finalId;
}//*****************************************************************************
区别在于,我正在制作一张新纸,然后复制选项卡而不是复制整个文件。如果要复制多个标签,可以添加另一个标签并删除变量。