2016-08-22 8 views
0

このコードでは何もクリアされません。それはバグですか?もしそうなら、それを報告する場所は?range.clear({contentsOnly:false})がGoogle Appsスクリプトで期待通りに動作しない

function clearTheRange() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var range = sheet.getRange(1,1); 
    range.setBackground("yellow"); 
    range.setValue("test"); 
    range.clear({contentsOnly:false}); 
} 

range.clear()が期待通りに機能します。ここで

は、私はそれをテストシートへのリンクです:https://docs.google.com/spreadsheets/d/1H79hEr2KhVGV4xTICRgLa_bPfimAV1gFXir6Ht_YouA/edit?usp=sharing

答えて

0

clearは唯一のオプションパラメータで渡されたものを「考慮」します。
あなたのケースでは、オプションを見て、内容を見なければならないが、それらをクリアしてはいけないと考えています。提供されていないものはすべてfalseとし、ではないとみなされます。
フィールド名の唯一の部分は、誤った名前のビットです。人々は通常、何かを除いて、すべてのものではなく1つのものをクリアしたいと思っています。

フォーマットをクリアするにはrange.clear({formatOnly: true});、コンテンツを消去するにはrange.clear({contentsOnly: true});を試してください。私はcontentsOnlyための変数を使用する必要がある場合

+0

私はあなただけの 'range.clear({contentsOnlyを提供し、その場合には –

+0

をフォーマットし、コンテンツだけをクリアする必要はありません。 true}); ' –

+0

はい、それは動作します。しかし、それでは、真または偽の定数の代わりに変数を使用したい場合、私はできません。私がフォーマットを含むすべてをクリアしたいのであれば、パラメータなしでclear()を呼び出す必要があります。このような : ' 機能clearTheRange(contentsOnly){ VARシート= SpreadsheetApp.getActiveSheet()。 var range = sheet.getRange(1,1); range.setBackground( "yellow"); range.setValue( "test"); range.clear({contentsOnly:contentsOnly}); } '' ' –

0

は最終的に私は以下のソリューションに付属している:

function test() { 
    clearTheRange(false); 
} 

function clearTheRange(contentsOnly) { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var range = sheet.getRange(1,1); 
    range.setBackground("yellow"); 
    range.setValue("test"); 
    //range.clear({contentsOnly:contentsOnly}); - this will not work if contentsOnly is false; 
    if (contentsOnly) range.clearContent(); else range.clear(); 
} 
関連する問題