【问题标题】:Clear Invalid Values from Spreadsheet从电子表格中清除无效值
【发布时间】:2015-06-19 05:30:37
【问题描述】:

我为此使用 Google 电子表格:

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

验证规则允许的数据来自单独工作表上的列表,当客户的状态从“活动”更改为“已取消”时,该列表会过滤掉客户,这意味着他们不能再被分配。状态是手动更改的。一旦分配的客户更改为“已取消”,它将成为日历上的无效客户。

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

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

screen clipping

任何帮助将不胜感激。

【问题讨论】:

  • 是的,有办法。首先需要确定的是,什么会触发代码检查无效值?分配的客户如何更改为“已取消”?有人编辑了一个单元格?您可以在编辑发生时运行代码。
  • 谢谢,我已经用您需要的信息更新了我的问题。

标签: google-apps-script google-sheets


【解决方案1】:

代码如下所示:

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() 返回一个二维数组。每个内部数组代表一行。如果你只得到一列数据,那么每个内部数组将只有一个元素。数组从零开始索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 2015-04-09
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多