2016-08-22 65 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(); 
} 
相关问题