Я думаю, что эту проблему довольно сложно понять из такого короткого вопроса, поэтому я уточню подробнее.
Что должно произойти:
- Скопируйте файл таблицы
- Найдите слайды, на которые есть ссылки в электронной таблице
- Скопируйте слайды в новый файл
- В копии электронной таблицы обновите ссылку, чтобы отразить новый файл
Для этого вы будете использовать файл скрипта приложения, прикрепленный к вашему листу. Этот сценарий создаст пользовательское меню для добавления функциональности в ваши листы.
Есть и другие способы сделать это, но есть возможность сохранить эту функцию и для копий. (Таким образом, копии могут делать свои копии).
Вот код (с комментариями):
function onOpen(e) {
SpreadsheetApp.getUi()
.createMenu("Custom Actions") //Creates a custom menu item called "Custom Actions"
.addItem("Clone Files", "cloneFiles") //Adds a clickable button to call the cloneFiles() function.
.addToUi(); //Displays the new menu.
}
function cloneFiles() {
var originalSheet = DriveApp.getFileById(
SpreadsheetApp.getActive().getId()); //Get the file Id of the current Spreadsheet.
var originalSlide = DriveApp.getFileById(
SlidesApp.openByUrl( //Opens the spreadsheet with the URL
SpreadsheetApp.getActive()
.getSheetByName("Sheet1") //Gets the url on Sheet1
.getRange("A1") //On cell A1
.getValue()).getId()); //Get the file Id
var newSheet = originalSheet.makeCopy("New Sheet"); //Create a copy and name it "New Sheet"
var newSlide = originalSlide.makeCopy("New Slide"); //Create a copy and name it "New Slide"
SpreadsheetApp.flush(); //Forces the spreadsheets to be updated to their final value.
SpreadsheetApp.open(newSheet).getSheetByName("Sheet1").getRange("A1").setValue(newSlide.getUrl()); //Then alters the url to the copied file.
SpreadsheetApp.getUi().showModalDialog(
HtmlService.createHtmlOutput("<p>New Files Created!<p><ul><li><a href='"+newSheet.getUrl()+"'>New Sheet</a></li><li><a href='"+newSlide.getUrl()+"'>New Slide</a></ul>")
.setHeight(150)
.setWidth(150), "Copied files");
}
После добавления этого на свой лист, каждый раз, когда пользователь открывает его, он увидитдополнительная кнопка:
После нажатия нашего специального действия они увидят приятное всплывающее окно с новыми ссылками:
Надеюсь, это поможет!