-1

カレンダースプレッドシートを使用しています。このドキュメントでは、背景色を使用してさまざまなイベントを指定しています。たとえば、会議は青色、庭仕事は赤色です。

Google スプレッドシートで特定の範囲を調べ、特定の背景色のセルをカウントし、各ブロックに重み (つまり 30 分) を割り当て、時間を返す (sum if bg color) メソッドを作成しようとしています。その背景色の活動/週に費やされた。

私の本質的な問題は、パラメーターが (範囲であっても) 未定義であり、未定義のオブジェクト型で範囲メソッドを呼び出すことができないことです。

コードは次のとおりです。

    //this function sums cells of a given color having assigned each cell a given value.
    //it inspects a range and compares each cell's background color to a given background color
    //returns given title and calculated sum
    function sumifcolor(theRangeToInspect, valueOfCellInRangeToInspect, colorAndTitleCell) {
        var doc = SpreadsheetApp.getActiveSheet();
        var color = colorAndTitleCell.getBackgroundColor(); //get color
        var title = colorAndTitleCell.getInputvalueOfCellInRangeToInspect(); //get title
        theRangeToInspect.activate();
        var firstRow = theRangeToInspect.getRow();
        var lastRow = theRangeToInspect.getLastRow();
        var firstCol = theRangeToInspect.getColumn();
        var lastColumn = theRangeToInspect.getLastColumn();
        var result;

        //for loops iterate through every cell in a row
        for (var yy=firstRow; xx<=lastRow; xx++) {
           for (var xx=firstCol; yy<=lastCol; yy++) {
                if (doc.getRange(xx,yy).getBackgroundColor() = color) {result += valueOfCellInRangeToInspect} 
           };
        };
      return title + ": " + result;    
    };
4

1 に答える 1

0

関数をスプレッドシート内の式として使用しようとしていると思います。

その場合、範囲オブジェクトは関数に渡されず、代わりに範囲内の値が渡されます。したがって、

theRangeToInspect.getRow();

動作しないでしょう。theRangeToInspect には範囲の内容が含まれます。

于 2012-09-12T17:44:23.550 に答える