0
私はかなり新しいスクリプトです。私はGoogleフォームからエントリを照合するGoogleブックを設定しようとしています。毎月、フォームのエントリがブック内の新しいシートに移動します。ブックの最後のシートは、すべての前のシートを合計します。googleアプリケーションスクリプトでgetRange(cell)が機能しない
しかし、ワークシートの数を固定することはできないので、前のすべてのシートを参照するサム関数を書き込むことはできません。
これで、既存のすべてのワークシートから同じセルの値を合計する単純な関数を作成します。
すべての新しいシートがそれぞれの時間を実行する名前SMM1、SMM2、SMM3など
- になりますので、私は新しいシートの名前を制御することができますが呼び出し、ワークシートで
- を「範囲が見つからない」を与えますこの関数はセル名で奇妙な数を返します。例:すべての5枚はE17で1を満たしている31にもかかわらず
=totalsheets("E17")
は、これは私が を書かれているスクリプトで与え
コードサンプル:
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;
}