简体   繁体   English

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

[英]How do I fix "Missing ; before statement" in a if statement with text

Every time I use text in an if statement it says "Missing ; before statement."每次我在 if 语句中使用文本时,它都会显示“Missing ; before statement”。 My code is我的代码是

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 {
    }

What it does is break and merge cells based on your class (Warlock and Fighter).它的作用是根据您的职业(术士和战士)打破和合并单元格。 Traits!L3 is a data validation that lets you choose a class so if you choose warlock, then it merges 4 cells, if not, (unfinished code). Traits!L3 是一个数据验证,让你选择一个职业,所以如果你选择术士,那么它会合并 4 个单元格,如果不是,(未完成的代码)。 How and why does this show up and is there a way to fix it?这如何以及为什么会出现,有没有办法解决它?

You forgot a .你忘记了一个. before breakApart() and mergeAcross()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 {
    }

You should use Data->Named Ranges in google sheets and start naming your cell references then you can call them in code or even formulas by that name.您应该在 Google 表格中使用数据-> 命名范围并开始命名您的单元格引用,然后您可以在代码中调用它们,甚至可以通过该名称在公式中调用它们。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM