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

Google Sheets Apps Script AddPosition函数SyntaxError错误排查求助

问题原因

你的代码存在2处语法错误,直接触发了Unexpected identifier报错:

  • if判断结构不合法:最后一个校验条件credit==""末尾多写了多余的||运算符,同时没有用右括号)闭合整个if判断的条件部分,直接接了左大括号{,语法结构完全不符合JS规范
  • 代码混入了非法标记:第23行前后的**是Markdown加粗格式标记,不属于Google Apps Script的合法语法,引擎无法识别

修复后的完整代码

function AddPosition() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dashboard = ss.getSheetByName("Dashboard");
  var data = ss.getSheetByName("Data");
  var expiration = dashboard.getRange(7, 3).getValue();
  var sym = dashboard.getRange(7, 4).getValue();
  var contracts = dashboard.getRange(7, 5).getValue();
  var type = dashboard.getRange(7, 6).getValue();
  var shortleg = dashboard.getRange(7, 7).getValue();
  var longleg = dashboard.getRange(7, 8).getValue();
  var pop = dashboard.getRange(7, 9).getValue();
  var credit = dashboard.getRange(7, 10).getValue();

  // 修复了if判断的括号与多余运算符问题
  if (expiration=="" ||
      sym=="" || 
      contracts=="" || 
      type=="" || 
      shortleg=="" || 
      longleg=="" || 
      pop=="" || 
      credit=="") {
        var ui = SpreadsheetApp.getUi();
        // 告警提示已改为你需要的中文内容
        var response = ui.alert('Missing data','请补全缺失值后重试', ui.ButtonSet.OK);
        return;
  }

  data.insertRowAfter(data.getLastRow());
  var lastRow = data.getLastRow();
  var now = new Date();
  data.getRange(lastRow, 1).setValue(now);
  data.getRange(lastRow, 2).setValue(sym);
  data.getRange(lastRow, 3).setValue(type);
  data.getRange(lastRow, 4).setValue(expiration);
  data.getRange(lastRow, 6).setValue(longleg);
  data.getRange(lastRow, 7).setValue(shortleg);
  data.getRange(lastRow, 9).setValue(contracts);
  data.getRange(lastRow, 10).setValue(credit);
  data.getRange(lastRow, 13).setValue(pop);

  data.getRange(lastRow-1, 33).copyTo(data.getRange(lastRow, 33));
  data.getRange(lastRow-1, 34).copyTo(data.getRange(lastRow, 34));
  data.getRange(lastRow-1, 35).copyTo(data.getRange(lastRow, 35));
  data.getRange(lastRow-1, 36).copyTo(data.getRange(lastRow, 36));
  data.getRange(lastRow-1, 37).copyTo(data.getRange(lastRow, 37));

  dashboard.getRange(7,2,1,11 ).clearContent();
}

内容的提问来源于stack exchange,提问作者Jason Saint-Elie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:15:07