2017-10-13 109 views
-1

我正在尝试清除Google中的电子表格。我使用下面的代码,但似乎无法让它工作。我想我的代码太长了。任何人都可以简化它?这对我的工作有很大的帮助。Google Sheet清除按钮

function ClearCell() { 

    var sheet = SpreadsheetApp.getActive().getSheetByName('customer_list'); 
    sheet.getRange("B34:G34").clearContent(); 
    sheet.getRange("H34:J34").clearContent(); 
    sheet.getRange("H37:J37").clearContent(); 
    sheet.getRange("H40:J40").clearContent(); 
    sheet.getRange("H43:J43").clearContent(); 
    sheet.getRange("H46:J46").clearContent();' 

等.................

overview image for the whole code

+0

您是否收到错误消息? –

回答

0

大概功能如下:

function ClearCell() 
{ 
    var sheet = SpreadsheetApp.getActive().getSheetByName('customer_list'); 
    sheet.getRange("B34:G34").clearContent(); 
    sheet.getRange("H34:J34").clearContent(); 
    sheet.getRange("H37:J37").clearContent(); 
    sheet.getRange("H40:J40").clearContent(); 
    sheet.getRange("H43:J43").clearContent(); 
    sheet.getRange("H46:J46").clearContent(); 
} 

我看起来没问题。还有更多吗?什么是等等...

+0

嗨SirRubén,错误信息是“超出执行时间,所以意味着有390行。抱歉,我无法粘贴所有 – Red

0

你可以尝试下面..它为我工作!

var rng = sheet.getRange("H34:J34") 
    for(i=0;i<390;i++){ 
    rng.clearContent() 
    rng=rng.offset(3,0) 
    Logger.log("Clearing " + rng.getA1Notation()) 
    } 
0

您的代码大量膨胀。你正在做很多getRange().clearContet()的操作。您应该尽可能避免写入电子表格。如果你不能清除只有1范围内的值,那么我建议您使用

dataRange = sheet.getDataRange(); 
arrValues = dataRange.getValues(); 

然后用二维数组,你只需for循环

for (i = 0; i < arrValues.length; i++) { 
    if (/* How to identify the row you wish to delete */) { 
    for (ii = 0; ii < arrValues[i].length; ii++) { 
     if (/* Whatever rule defines that the cell needs to be cleared*/) 
     arrValues[i][ii] = ''; 
    } 
    } 
} 

运行一旦你完成了阵列只是做

dataRange.setValues(arrValues) 

显然,这只是大概的想法。您可以更好地编写for环路,当然您需要弄清楚如何识别您希望清除的区域