如何在带有文本的if语句中修复“缺少;语句前”

时间:2019-12-19 04:25:10

标签: javascript google-apps-script google-sheets

每次我在if语句中使用文本时,都会说“ Missing; before statement”。我的代码是

function onEdit() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Class');
var class = sheet.getRange('Traits!L3').getValue();
  if (class == 'Warlock' ) {
    sheet.getRange('A7:D7')breakApart();
    sheet.getRange('A7:D7')mergeAcross();
  } else {
    if (class == 'Fighter') {
      sheet.getRange('A7:D7')breakApart();
      sheet.getRange('A7:B7')mergeAcross();
    } else {
    }

它的作用是根据您的职业(术士和战斗机)打断并合并牢房。 Traits!L3是一种数据验证,可让您选择一个类,因此,如果您选择术士,则它将合并4个单元格(如果未合并)(未完成的代码)。如何以及为什么会出现这种情况,并且有办法解决?

1 个答案:

答案 0 :(得分:3)

您在.breakApart()之前忘记了mergeAcross()

function onEdit() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Class');
var char_class = sheet.getRange('Traits!L3').getValue();
  if (char_class == 'Warlock' ) {
    sheet.getRange('A7:D7').breakApart();
    sheet.getRange('A7:D7').mergeAcross();
  } else {
    if (char_class == 'Fighter') {
      sheet.getRange('A7:D7').breakApart();
      sheet.getRange('A7:B7').mergeAcross();
    } else {
    }

您应该在Google表格中使用“数据”->“命名范围”,并开始命名单元格引用,然后您可以使用该名称在代码甚至公式中对其进行调用。