2016-05-04 5 views
0

私はかなり新しいスクリプトです。私はGoogleフォームからエントリを照合するGoogleブックを設定しようとしています。毎月、フォームのエントリがブック内の新しいシートに移動します。ブックの最後のシートは、すべての前のシートを合計します。googleアプリケーションスクリプトでgetRange(cell)が機能しない

しかし、ワークシートの数を固定することはできないので、前のすべてのシートを参照するサム関数を書き込むことはできません。

これで、既存のすべてのワークシートから同じセルの値を合計する単純な関数を作成します。

すべての新しいシートがそれぞれの時間を実行する名前SMM1、SMM2、SMM3など

  1. になりますので、私は新しいシートの名前を制御することができますが呼び出し、ワークシートで
  2. を「範囲が見つからない」を与えますこの関数はセル名で奇妙な数を返します。例:すべての5枚はE17で1を満たしている31にもかかわらず=totalsheets("E17")は、これは私が
  3. を書かれているスクリプトで与え

コードサンプル:

function totalsheets(cell) { 

    var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 

    var sum = 0; 

    for (var i = 0; i < sheets.length; i++) { 


     var sheet = sheets[i]; 
     var sheetName = sheet.getName(); 

     if (sheetName.substring(0, 3) == 'SMM') { 

     var val = sheet.getRange(cell).getValue(); 

     if (typeof(val) == 'number') { 
      sum += val; 
     } 

     } 

    } 

    return sum; 

    } 

I:

function totalsheets(cell) { 

var sum=0,sname=""; 

// to find total number of sheets based on fixed 2nd last sheet 

var number= SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SMM1").getIndex(); 

for(var i=1; i<=number; i++) 

{ 

    sname="SMM" + i; 

    var s= SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sname).getRange(cell).getValue(); 
    sum+=s; 

    } 

    return sum; 

} 

答えて

1

は、このコードを試してみてくださいsimiliar question hereが見つかった場合は、お手数ですが

関連する問題