Я использую измененную версию кода ниже, чтобы делать и отслеживать копии постоянно.
Есть пункт меню, который они могут использовать для копирования электронной таблицы.Этот код вставляет URL новой электронной таблицы в ваш собственный лист отслеживания.Хотя нет гарантии, что они будут использовать этот метод, даже если вы скажете им.Пользователи почти никогда не делают это так, как вы хотите.
Используйте формулу на листе, чтобы подсчитать количество URL-адресов, чтобы получить количество копий.
Чтобы приведенный ниже код работал, вы будете работатьнеобходимо установить триггер для функции open
, сработавшей On open
.Пользователь должен будет предоставить доступ к сценарию при первом его использовании.
Вы также можете включить смену владельца, если хотите получить полный контроль над всеми листами.
function open() {
SpreadsheetApp
.getUi()
.createMenu('Your-menu-name')
.addItem('Make a copy', 'copy')
.addToUi();
}
function copy() {
var tracker = SpreadsheetApp.openById('tracker-id-here');
var template = DriveApp.getFileById('template-id-here');
var folder = DriveApp.getRootFolder();
//their root folder
//var folder = DriveApp.getFolderById('folder-id');
//use the above line instead if you want to create them in specific folders
var filename = template.getName();
var newFile = template.makeCopy(filename, folder);
var url = newFile.getUrl();
//newFile.setOwner('email-address-here');
//use the line above if you want to set an owner who is not the user
tracker.getSheetByName('your-sheet-name').appendRow([filename, url]);
}