编程删除脚本



我想知道有人可以给我一些建议。

我有一个主电子表格,充当模板。我编写了一个可以从菜单(使用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具有我所谓的复制电子表格的值)。

rayden,我使用这样的函数将一张纸复制到新的电子表格,并且不会用它拖动脚本。GDRIVE是电子表格的ID,TabName您想要复制的单个表格,文件名,副本和目标目的地目录的名称。

//******************************************************************************
//- 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;
}//*****************************************************************************

区别在于我正在制作新表,然后复制选项卡,而不是复制整个文件。如果要复制多个选项卡,可以添加另一个选项卡并删除变量。

我在实现J.G.移动单个表的方法时遇到了麻烦,所以我采用的方法是在脚本前面添加条件的方法,仅当电子表格ID等于等于原始电子表格的ID。我的用例是试图在副本上重新出现的原始工作簿上的自定义菜单,因此它为此起作用。

var bookId = spreadsheet.getId();
if (bookId === 'original spreadsheet id') {
*Function*
  }

最新更新