You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AppScript语法错误求助:Unexpected token与Unexpected end of input

业务工具重构中的AppScript语法错误排查求助

正在重构公司业务工具,原代码混乱,重新编写时大量复用原有可运行的AppScript脚本,现出现两类语法错误,已尝试重新输入代码、搜索解决方案但问题未解决,恳请帮忙排查。

问题1:Unexpected token 'var' 语法错误

错误提示:Syntax error: SyntaxError: Unexpected token 'var' line: 89 file: Code.gs
注释该代码区块仍触发错误,相关代码片段:

if (location === 'L1'){
    var officeLocation = 'Drive Folder ID 1';
    var emailRecip = 'L1 group email address';
    var franchiseNum = 'L1 franchise #';
    createFolderStructure(officeLocation);
    writeDash(pittDash,custFN,custLN,date,leadType);  //These variables are all defined in code above
    marketing(location zip,referSource);
    if(leadType==='Assessment'){  
      writeDash(wSheet,custFN,custLN,date,leadType)
      }

  } else if (location === 'L2'){
    var officeLocation = 'You get the picture';
    var emailRecip = 'I am just going to redact with -----';  
    var franchiseNum = '-----';
    createFolderStructure(officeLocation);
    writeDash(pittDash,custFN,custLN,date,leadType);
    if(leadType==='Assessment'){
      writeDash(wSheet,custFN,custLN,date,leadType)
      }

  } else if (location === '----'){
       var officeLocation = '-----';
    var emailRecip = '------';
    var franchiseNum = '------';
    createFolderStructure(officeLocation);
    writeDash(pittDash,custFN,custLN,date,leadType);
    if(leadType==='Assessment'){
      writeDash(wSheet,custFN,custLN,date,leadType)
      }
  } else {
    var emailBdy = 'Looks like you forgot to set a location to that last ----, Try Again!'
    var emailSubject = 'Uh-Oh!!'
    var userEmail = Session.getActiveUser().getEmail();
    MailApp.sendEmail(userEmail,emailSubject,emailBdy);
    return;
  }

//#- Send ---- Email - must be after [6- Create Drive Folders]
  
  var emailSubj = '----: '+ franchiseNum + ' - '+custLN+', '+custFN+' - '+lossType+lossClass+'-'+date;
  var emailBody = custFN+' '+custLN+'\n'+'\n'+ leadType+ '\n'+lossType+'\n'+lossType+'\n'+custPhone+'\n'+clientAddress+'\n'+'\n'+leadDesc+'\n'+'https://drive.google.com/drive/folders/'+officeLocation;
  MailApp.sendEmail(emailRecip,emailSubj,emailBody);
  Logger.log(emailBody);


}

问题2:Unexpected end of input 语法错误

错误提示:Syntax error: SyntaxError: Unexpected end of input line: 161 file: Code.gs
错误出现在最后一个function的闭合处,相关代码片段:

function marketing(location, zip,referSource){
  var mSheetName = SpreadsheetApp.getActive().getSheetByName(location + ' Marketing');
  mSheetName.insertRowsAfter(29);
  mSheetName.getRange('A30').setValue(referSource);
  mSheetName.getRange('C30').setValue(zip);
  mSheetName.getRange('B30').setValue(1);
  mSheetName.getRange('B30').setValue(1);
}

完整脱敏代码

function theButton() {
//1- Sheet Variables v(spreadsheet, newJobSheet,fOneDash,fTwoDash,fThreeDash,fOneMark,fTwoMark)
  var spreadsheet = SpreadsheetApp.getActive();
  var newJobSheet = spreadsheet.getSheetByName('New Job');
  var fOneDash = spreadsheet.getSheetByName('franchOne Dash');
  var fTwoDash = spreadsheet.getSheetByName('franchTwo Dash');
  var fThreeDash = spreadsheet.getSheetByName('fThree Dash');
  var fOneMark = spreadsheet.getSheetByName('franchOne Marketing');
  var fTwoMark = spreadsheet.getSheetByName('franchTwo Marketing');



//2- Input Variables v(location,leadType,custFN,custLN,lossType,lossClass,custPhone,stAdd,cityState,zip,referSource,leadDesc)
  var location = newJobSheet.getRange('B2').getValue();
  var leadType = newJobSheet.getRange('B3').getValue();
  var custFN = newJobSheet.getRange('B4').getValue();
  var custLN = newJobSheet.getRange('B5').getValue();
  var lossType = newJobSheet.getRange('B6').getValue();
  var lossClass = newJobSheet.getRange('B7').getValue();
  var custPhone = newJobSheet.getRange('B8').getValue();
  var stAdd = newJobSheet.getRange('B9').getValue();
  var cityState = newJobSheet.getRange('B10').getValue();
  var zip = newJobSheet.getRange('B11').getValue();
  var referSource = newJobSheet.getRange('B12').getValue();
  var leadDesc = newJobSheet.getRange('B13').getValue();


//3- Compiled variables v(clientAddress,clientAddressURL,userEmail)
  var clientAddress = stAdd + '\n' + cityState + " " + zip;
  var clientAddressURL = stAdd + ' ' + cityState + " " + zip;
  Logger.log(clientAddressURL);
  let newAddress = '0';
  Logger.log(newAddress);
  newAddress = parseAddressURL(clientAddressURL);
  var userEmail = Session.getActiveUser().getEmail();







//4- Date v(date, month, year)
  var date = newJobSheet.getRange('A1').getValue();
  var month = newJobSheet.getRange('A50').getValue();
  var year = newJobSheet.getRange('A51').getValue();


//5- Job Name v(nameNewJob)
  var nameNewJob = custLN + ', ' + custFN + ', ' + lossType + ', ' + lossClass + ', ' + leadDesc +




//6- Create Drive Folders, write to Dash, Marketing, Assessment Tracker v(officeLocation [driveID],emailRecip,franchiseNum)


if (location === 'franchOne'){
    var officeLocation = 'driveurl(thisisredacted)';
    var emailRecip = 'franchOne@emailaddress.com';
    var franchiseNum = ‘franchOneNum';
    createFolderStructure(officeLocation);
    writeDash(fOneDash,custFN,custLN,date,leadType);
    marketing(location zip,referSource);
    if(leadType==='Assessment'){
      writeDash(wSheet,custFN,custLN,date,leadType)
      }


  } else if (location === 'franchTwo'){
    var officeLocation = 'driveurl(thisisredacted)';
    var emailRecip = 'franchTwo@emailaddress.com';  
    var franchiseNum = 'fTwoFranchNum ';
    createFolderStructure(officeLocation);
    writeDash(fOneDash,custFN,custLN,date,leadType);
    if(leadType==='Assessment'){
      writeDash(wSheet,custFN,custLN,date,leadType)
      }


  } else if (location === 'fThree'){
       var officeLocation = 'driveurl(thisisredacted)';
    var emailRecip = 'franchTree@emailaddress.com';
    var franchiseNum = 'fThree ';
    createFolderStructure(officeLocation);
    writeDash(fOneDash,custFN,custLN,date,leadType);
    if(leadType==='Assessment'){
      writeDash(wSheet,custFN,custLN,date,leadType)
      }
  } else {
    var emailBdy = 'Looks like you forgot to set a location to that last FNOL, Try Again!'
    var emailSubject = 'Uh-Oh!!'
    var userEmail = Session.getActiveUser().getEmail();
    MailApp.sendEmail(userEmail,emailSubject,emailBdy);
    return;
  }


//#- Send FNOL Email - must be after [6- Create Drive Folders]
  
  var emailSubjFNOL = 'FNOL: '+ franchiseNum + ' - '+custLN+', '+custFN+' - '+lossType+lossClass+'-'+date;
  var emailBody = custFN+' '+custLN+'\n'+'\n'+ leadType+ '\n'+lossType+'\n'+lossType+'\n'+custPhone+'\n'+clientAddress+'\n'+'\n'+leadDesc+'\n'+'https://drive.google.com/drive/folders/'+officeLocation;
  MailApp.sendEmail(emailRecip,emailSubjFNOL,emailBody);
  Logger.log(emailBody);




};







function createFolderBasic(folderID, folderName) {
  var folder = DriveApp.getFolderById(folderID);
  var newFolder = folder.createFolder(folderName);
  return newFolder.getId();
  };





function createFolderStructure(officeLocation){
    var newClientFolderID = createFolderBasic(officeLocation, nameNewJob);
    var newClientMitID = createFolderBasic(newClientFolderID, 'MIT');
    var newClientPhotosID = createFolderBasic(newClientFolderID, 'Photos');
    var newClientReconID = createFolderBasic(newClientFolderID, 'RECON');
    var newClientReconActiveEstimatesID = createFolderBasic(newClientReconID, 'Active Estimates');
    var newClientReconArchivedID = createFolderBasic(newClientReconID, 'Archived');
    var newClientReconBidsID = createFolderBasic(newClientReconID, 'Sub Bids');
    var newClientReconFormsID = createFolderBasic(newClientReconID, 'Forms');
  };
function parseAddressURL(newClientAddressURL,) {
  var address = newClientAddressURL
  var address = address.replace(/ /g, '+' );
  address = address.replace(/,/g , '%2C');
  Logger.log(address)
  var addressURL = 'https://www.google.com/maps/search/?api=1&query=' + address;
  Logger.log(address);
  Logger.log(addressURL);
  return addressURL;
  };


function writeDash(wSheet,custFN,custLN,date,leadType){
    wSheet.insertRowsAfter(2,1);
    wSheet.getRange('A2').setValue(custFN);
    wSheet.getRange('B2').setValue(custLN);
    wSheet.getRange('C2').setValue(date);
    wSheet.getRange('D2').setValue(leadType);
  };


  function assTrack(custFN,custLN,date,custPhone,location,leadDesc,newAddress){
      var assss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/driveurl(thisisredacted)');
      var assLog = assss.getSheetByName('Assessment Log');
      assLog.insertRowBefore(2);
      assLog.getRange('A2').setValue(custFN);
      assLog.getRange('B2').setValue(custLN);
      assLog.getRange('C2').setValue(date);
      assLog.getRange('D2').setValue(custPhone);
      assLog.getRange('E2').setValue(location);
      assLog.getRange('F2').setValue(newAddress);
      assLog.getRange('G2').setValue(leadDesc);
  };



function marketing(location, zip,referSource){
  var mSheetName = SpreadsheetApp.getActive().getSheetByName(location + ' Marketing');
  mSheetName.insertRowsAfter(29);
  mSheetName.getRange('A30').setValue(referSource);
  mSheetName.getRange('C30').setValue(zip);
  mSheetName.getRange('B30').setValue(1);
  mSheetName.getRange('B30').setValue(1);
};

内容的提问来源于stack exchange,提问作者Ryan Prather

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:18:33