Google工作表清除按钮

时间:2017-10-13 03:27:06

标签: google-apps-script google-sheets

我正在尝试清除Google中的电子表格。我正在使用以下代码但似乎无法使其工作。我认为我的代码太长了。任何人都可以简化吗?这对我的工作有很大的帮助。

  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

3 个答案:

答案 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();
}

对我来说没问题。还有吗?是什么等等......

答案 1 :(得分: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())
  }

答案 2 :(得分:0)

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

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

然后使用2D数组,您只需运行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循环,当然您需要弄清楚如何识别要清除的字段