私のGoogle Appsスクリプトは、これらのセルがの太字のの場合にのみ、セルの合計を計算することを目的としています。太字でない場合のセルの合計
=(SumIfNotBold(K2:K100,COLUMN(K2), ROW(K2)))*1
私は三つの主要な懸念を持っている:ここで
function SumIfNotBold(range, startcol, startrow){ // convert from int to ALPHANUMERIC // - thanks to Daniel at http://stackoverflow.com/a/3145054/2828136 var start_col_id = String.fromCharCode(64 + startcol); var end_col_id = String.fromCharCode(64 + startcol + range[0].length -1); var endrow = startrow + range.length - 1 // build the range string, then get the font weights var range_string = start_col_id + startrow + ":" + end_col_id + endrow var ss = SpreadsheetApp.getActiveSpreadsheet(); var getWeights = ss.getRange(range_string).getFontWeights(); var x = 0; var value; for(var i = 0; i < range.length; i++) { for(var j = 0; j < range[0].length; j++) { if(getWeights[i][j].toString() != "bold") { value = range[i][j]; if (!isNaN(value)){ x += value; } } } } return x;
が式である:ここでは はソースです、私はトリガーを設定
- 編集時にこのスクリプトを起動すると、誤ってn個のGoogle Appsからメール
TypeError: Cannot read property "length" from undefined. (line 7, file "SumIfNotBold")
はこのように、どのように私はそれを修正することができますことを伝えますか?これらの自動的に配信される通知を無視する方法はありますか?
数式は、他のリストにあるセルの合計を計算しません。たとえば、Bリストに数式を入れてもセルがリストにある場合、このスクリプトは間違った計算を引き出すという点では正しく機能しません。
セルの値が更新されると、式の導出は更新されません。この場合、式自体を更新しています(つまり、「K2:K50」を「K3:K50」に変更して一度戻っていきます)。
このスクリプトの問題を解決してください。非大胆なセルで合計を計算するために新しいセルを使用する方が良い場合は、新しいソリューションを受け入れることができます。
トリガーを「任意の編集でこのスクリプトを起動する」ように設定すると、どの範囲が合計されると思いますか?あなたはどんな範囲を望んでいるのか、どのようにして知っていますか? –
@soup、はい、それは明らかですが、編集するだけで、私が 'SumIfNotBold'の派生をリフレッシュする必要があるため、作成します。私が説明に書いたように、それは自動的に変化しないので、私はトリガを設定しています。あなたはそれをより柔軟にするために書き直すことができますか? – RLearnsR