2

関数を使用して Google スプレッドシート セルの数式を設定しようとしていcell.setFormulaます。

これは関数からの私のコードです。重要なコード行は、私が試みた最後の行ですsetFormula

//Create new empty project sheet
function copySheet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var temp = ss.getSheetByName("Project_Template");
  var name = Browser.inputBox("Create New Project", "Enter name for new project", Browser.Buttons.OK_CANCEL);
  if (name != "cancel") {
    ss.insertSheet(name,1, {template:temp})
    //Add project name to project code cell
    var newSheet = ss.getSheetByName(name);
    var cell = newSheet.getRange(3, 2);
    cell.setValue(name);
    //Update formula in placemarkers sheet
    var rowNum = ss.getNumSheets() - 3;
    var formulaSheet = ss.getSheetByName("Placemarkers");
    var formulaCell = formulaSheet.getRange(rowNum, 1);
    formulaCell.setFormula('=if(isna(filter('name'!AH3:AH3,'name'!AH3:AH3 <> ""))=true,"",filter('name'!AH3:AH3,'name'!AH3:AH3 <> ""))');
  }
}

スクリプトを保存しようとすると、次のエラー メッセージが表示されます。

Missing ) after argument list. (line 103)

引用符と二重引用符の組み合わせに関係していると確信しています。エラーメッセージなしで動作させることができませんでした。どんな助けでも大歓迎です。

4

2 に答える 2

7

文字列と変数を結合する+演算子は挿入されません。name次のコード部分は問題を修正します

formulaCell.setFormula('=if(isna(filter(' + name + '!AH3:AH3,' + name + '!AH3:AH3 <> ""))=true,"",filter(' + name + '!AH3:AH3,' + name + '!AH3:AH3 <> ""))');
于 2012-10-17T08:39:10.237 に答える
2

..私にはうまくいきません。

cell.setFormula("=COUNTIF('name'!B14:B71,"G:*")");
cell.setFormula("=COUNTIF(' + name + '!B14:B71,"G:*")");

その問題は、 setFormula の入力の"にあると思います。

Formula の内容の"をパラメータ フィールドのターミネータとして取り、)記号を待ってメソッド呼び出しを囲みます。

解決:

setFormula文字列の"の前に \ を挿入します。

cell.setFormula("=COUNTIF('name'!B14:B71,\"G:*\")");

_

于 2013-05-13T11:42:12.563 に答える