1
この赤い電球のメッセージは、実行するたびにシートスクリプトエディタで表示されます。コードに何か問題がありますか?それはうまくいくと思われ、実行するのに非常に時間がかかりません。赤い電球の警告
方法Range.getValueが重くスクリプトが高価と考えられている方法を使用するスクリプト
で使用されています。呼び出しごとに、リモートサーバーへの時間のかかる呼び出しが生成されます。これは、スクリプトの実行時間、特に大規模なデータに重大な影響を与える可能性があります。パフォーマンスがスクリプトの問題である場合は、別の方法、たとえばRange.getValues()
function Merge() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Expense Index');
var lastrow=sheet.getLastRow();
var range = sheet.getRange("A1:F"+(lastrow+1));
var k=3;
for (var i = 4; i <=lastrow+1; i++) {
var val1=range.getCell(i-1, 1).getValue();
var val2=range.getCell(i, 1).getValue();
if(val1!==val2){
if(!(sheet.getRange('A'+k+':A'+(i-1)).isPartOfMerge())){
sheet.getRange('A'+k+':A'+(i-1)).mergeVertically();
range.getCell((i-1), 6).setValue('=SUM(E'+k+':E'+(i-1)+')');
}
k=i;
}
}
sheet.getRange("A1:F"+(lastrow+1)).setHorizontalAlignment('center');
sheet.getRange("A1:F"+(lastrow+1)).setVerticalAlignment('middle')
}
合計noobのは、私がどのようにオブジェクトをループに把握することができないよう、私は物事の束を試してみましたが、より多くの場合より、このエラーを取得しました。 TypeError:オブジェクト内にgetCell関数が見つかりませんExpense –
シートはどのように設定されていますか?私はサンプルループを手助けするために更新することができます。 – Brian
https://drive.google.com/open?id=1MUguO4w6CkeuOGToFBGffCKFV8skVt0FlKe7yCzip4A –