2016-08-22 164 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,並且將清理而不是
字段名稱的唯一部分有點用詞不當,只是人們通常只想清除一件事情,而不是除了某件事情之外的所有事情。

嘗試使用range.clear({formatOnly: true});清除格式或清除內容range.clear({contentsOnly: true});

+0

我需要只清除內容,而不是在這種情況下格式化 –

+0

你只需要提供'range.clear({contentsOnly: true});' –

+0

是的,這是有效的。但是,如果我想使用一個變量而不是真或假不變 - 我不能。如果我想清除包括格式在內的所有內容,那麼我需要調用不帶參數的clear()。 是這樣的: ''' function clearTheRange(contentsOnly){ var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getRange(1,1); range.setBackground(「yellow」); range.setValue(「test」); range.clear({contentsOnly:contentsOnly}); } ''' –

0

最後我想出了以下的解決方案,如果我需要使用變量contentsOnly:

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(); 
} 
相關問題