从电子表格中清除无效值

时间:2015-06-18 12:09:37

标签: google-apps-script google-sheets

我正在使用Google Spreadsheets:

我有一个电子表格,基本上是一个4周的计划。每天分为几个插槽,可分配给我们的任何活动客户。这些单元格具有拒绝无效值的验证规则。

验证规则允许的数据来自单独工作表上的列表,当客户端的状态从“活动”更改为“已取消”时会筛选出客户端,这意味着无法再分配客户端。状态会手动更改。分配的客户端更改为“已取消”后,它将成为日历上的无效客户端。

是否有办法使用脚本查找并清除包含这些无效值的单元格的值?我在下面包含了一个屏幕剪辑。红色角是无效值。

我已经设置了onEdit触发器来运行代码,这将调用一个函数来处理这个特定的区域。

screen clipping

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

代码看起来像这样:

function onEdit(e) {
  //First check if you want the entire code to execute
  if (myNeededCondtion !=== "theValueToMach") {
    //End the code here
    return;
  }

  var mySpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var theSheet = mySpreadsheet.getSheetByName("name of sheet");

  var arrayOfColumnValues = theSheet.getRange(row to start at, column to start at, numRows, numColumns).getValues();

  var i=0;
  var thisValue = "";

  for (i=0;i<arrayOfColumnValues.length;i+=1) {
    thisValue = arrayOfColumnValues[i][0];
    if (thisValue==="Cancelled") {
      //Set the cell value to a blank string
      theSheet.getRange(i, column).setValue("");
    };
  };
};

您需要弄清楚范围值参数需要什么,并编辑代码。将正确的工作表名称添加到getSheetByName方法。请注意getValues()返回二维数组。每个内部数组代表一行。如果只获得一列数据,那么每个内部数组中只有一个元素。数组从零开始编制索引。