缺席)参数列表谷歌脚本后

时间:2014-10-21 18:59:38

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

我正在使用一些Google脚本,以便能够在名为“Invitations en cours”的目标表单中按特定顺序复制名为“Sheet2”的工作表的所有行。

在表2的第一列中是一个面板代码,我正在检索它,以便能够知道我应该将行复制到哪里,在目标表中还包含一次每个面板代码。

基本上我正在通过Sheet2中的所有行,并将所有非空的行复制到第一列右侧面板代码下的“Invitations en cours”。

我有两个问题: 1)我如何确保在Invitations en cours中创建一个新行,而不是覆盖已经存在的内容?我无法找到合适的功能。 2)为什么说缺失)参数线54?我找不到我在这里做错了什么。

//We get the range we want to eventually copy
var rowRange = sheet.getRange("A"+i:"Z"+i);

非常感谢你的帮助,请耐心等待,这是我第一次编码!

function onOpen() {
//Adding menu
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Fonctions spéciales')
      .addItem('Copier range', 'CopyRange')
      .addToUi();
}

function CopyRange() {
  SpreadsheetApp.getUi()
  var source = SpreadsheetApp.getActiveSpreadsheet();
  var lastRow = source.getLastRow();
  var sheet = source.getSheetByName("Sheet2");
  var i = 2;
  var r = i;
  var cell = source.getActiveCell();
  var sheetDestination = source.getSheetByName("Invitations en cours");
  var range = sheetDestination.getRange("A"+r);
  var cellFind = range.getCell(r, "A");
  var value = cellFind.getValue();
  //finding the right panel codes in the first column of the destination sheet
  for (r; r < lastRow; r++) {
    switch(value) {
      case "co":
        var confCo = cellFind;
        break;
      case "ca":
        var confCa = cellFind;
        break;
      case "1":
        var panelUn = cellFind;
        break;
      case "2":
        var panelDeux = cellFind;
        break;
      case "3":
        var panelTrois = cellFind;
        break;
      case "4":
        var panelQuatre = cellFind;
        break;
      case "5":
        var panelCinq = cellFind;
        break;
      case "6":
        var panelSix = cellFind;
        break;
    }
    }
  //Copying each row to the destination sheet under the right panel code
   while (i <= lastRow) {
     i++
     //We get the range we want to eventually copy
     var rowRange = sheet.getRange("A"+i:"Z"+i);
     //We check for blanks
     if (sheet.getRange("A"+i).getValue()!=="") {
       //We create a row under the panel codes we looked for earlier
       switch("A"+i.getValue()) {
          case "co":
            rowRange.copyValuesToRange(sheetDestination, 2, 26, confCo.getColumn(), confCo.getColumn());
            break;
          case "ca":
            rowRange.copyValuesToRange(sheetDestination, 2, 26, confCa.getColumn(), confCa.getColumn());
            break;
          case "AM1":
           rowRange.copyValuesToRange(sheetDestination, 2, 26, panelUn.getColumn(), panelUn.getColumn());
           break;
          case "AM2":
           rowRange.copyValuesToRange(sheetDestination, 2, 26, panelDeux.getColumn(), panelDeux.getColumn());
           break;
          case "AM3":
           rowRange.copyValuesToRange(sheetDestination, 2, 26, panelTrois.getColumn(), panelTrois.getColumn());
           break;
          case "PM1":
           rowRange.copyValuesToRange(sheetDestination, 2, 26, panelQuatre.getColumn(), panelQuatre.getColumn());
           break;
          case "PM2":
           rowRange.copyValuesToRange(sheetDestination, 2, 26, panelCinq.getColumn(), panelCinq.getColumn());
           break;
          case "PM3":
           rowRange.copyValuesToRange(sheetDestination, 2, 26, panelSix.getColumn(), panelSix.getColumn());
           break;
         default:`enter code here`
           text = "Je ne trouve pas un des codes panels suivants : co, ca, AM1, AM2, AM3, PM1, PM2, PM3. Avez-vous copié les codes panels?";
      }
    }
  }
  }

1 个答案:

答案 0 :(得分:1)

您似乎遇到字符串连接问题。

sheet.getRange("A"+i:"Z"+i); 

应该是

sheet.getRange("A"+i + ":Z"+i);