Я пытаюсь запустить функцию с необязательным аргументом / параметром в скрипте Google Apps. Функция создаст Документ Google, а также создаст Google Slide, если пользователь выберет Да. Моя проблема заключается в том, что при вызове функции extractReplace возникает ошибка, поскольку copySlide не определен.
Вот как я вызываю функцию:
var copyId = DriveApp.getFileById(documentTemplate)
.makeCopy(documentName + folderName, nsdestinationFolder)
.getId();
var copyDocument = DocumentApp.openById(copyId);
var copyBody = copyDocument.getActiveSection();
//call function to create technical slide proposal
if(createTemplate == "Yes"){
createSlideProposal();
}
else{
extractReplace(copyBody, copySlide = 0);
}
Я пробовал copySlide = 0, false, null, но он не работал, так как copySlide
не определен, когда передается строка copySlide.replaceAllText
. Существует еще одна функция, которая включает переменную copySlide
, но она будет вызываться и передаваться в функцию extractReplace
, если пользователь выберет «Да» для создания предложения слайда (powerpoint).
Вот функция, которая использует copySlide
function extractReplace(copyBody, copySlide) {
var result = ""; //result variable string = 0
var ss = SpreadsheetApp.openById("IDKEYHERE");
var firstDatabasesheet = ss.getSheets()[0];
var data = firstDatabasesheet.getDataRange().getValues();
data.forEach(function(row) {
if (row[32] == TMSreferenceNumber){
result = row[2] || row[16]; //chooses whichever cell that has something in it
copyBody.replaceText('repbranchOffice', result); //replaces text in document template
result = row[3] || row[17];
copyBody.replaceText('repsalesContact', result);
result = row[4] || row[18];
copyBody.replaceText('repbranchReferenceNumber', result);
result = row[5] || row[19];
copyBody.replaceText('rependUser', result);
copySlide.replaceAllText('rependUser', result); //for slide
}
...