当前位置: 首页 > 知识库问答 >
问题:

谷歌工作表。剧本根据单元格值删除值,然后重新组织

钱渊
2023-03-14

我不是脚本大师,我从这里和那里混合了一点代码,并想出了一个非常简洁的代码来根据另一个单元格值清除所有行,然后将它们重新组织为有序而不会留下空白行。

问题是,代码从第一行开始获取值,其中包含我想要保护的公式。

你能帮我解决这个问题吗?

我希望代码从第6行开始工作并向前。

// Deleting Rows Based on Cell Values

//GLOBALS

var SS = SpreadsheetApp.getActive();
var SHEET = SS.getSheetByName("Assignments");
var RANGE = SHEET.getRange("A:F");


var DELETE_VAL = "Delivered";
var COL_TO_SEARCH = 5; //Zero is first

function main() {

  var startTime = new Date().getTime();

  var deleteSelectedRows = removeThenSetNewVals();

  var runTime = (new Date().getTime() - startTime)/1000;
  Logger.log("Runtime is: "+runTime + " seconds");
};

function removeThenSetNewVals(){

  var rangeVals = RANGE.getValues();

  var newRangeVals = [];

  for(var i = 0; i < rangeVals.length; i++){
    if(rangeVals[i][COL_TO_SEARCH] != DELETE_VAL){

      newRangeVals.push(rangeVals[i]);
    };
  };

  RANGE.clearContent();

  var newRange = SHEET.getRange(1,1,newRangeVals.length, newRangeVals[0].length);
  newRange.setValues(newRangeVals);
};

非常感谢你:)

共有1个答案

暴辰龙
2023-03-14

我计算了范围。清除内容(clearContent)当您正在清除从A到F的整个范围时。我添加了一个else条件,该条件仅对带有“Delivered”的行清除

function removeThenSetNewVals(){

      var rangeVals = RANGE.getValues();

      var newRangeVals = [];

      for(var i = 0; i < rangeVals.length; i++){
        if(rangeVals[i][COL_TO_SEARCH] != DELETE_VAL){
          newRangeVals.push(rangeVals[i]);

        } else {
          Logger.log("clear row" + (i+1));
          SHEET.getRange("C"+(i+1)+":F"+(i+1)).clearContent(); 

        }
      };

     //* RANGE.clearContent();

      var newRange = SHEET.getRange(1,1,newRangeVals.length, newRangeVals[0].length);
      newRange.setValues(newRangeVals);
    };
 类似资料:
  • 我有一个工作表,我需要根据单元格值删除行。。 要检查的单元格位于A列中。。 如果单元格包含“-”。。删除行 我找不到这样做的方法...我打开一个工作簿,将所有内容复制到另一个工作簿,然后删除整个行和列,但必须根据单元格值删除特定的行。 这里需要帮助。 更新 我拥有的数据样本

  • 问题内容: 我有一个带有Year列的表,并且此列不应有重复的值。因此,我最终得到一张仅具有2007年记录的表格。 那么,如何删除具有重复年份值的行呢? 谢谢 问题答案: 我认为您可以尝试使用IGNORE添加唯一索引: MySQL应该以类似以下内容的方式进行响应: 当然,您可以将其留给MySQL来决定删除哪些行。 编辑: 这适用于任意多的列: 查看有关CREATE INDEX的MySQL文档。一个常

  • 我在PHP服务器中使用以下代码更新单元格中的值 运行此请求时,收到以下错误: 在PHP中,一次更新多个不连续单元格的GoogleSheetsAPI请求的正确方法是什么?

  • 问题内容: 我的站点读取一个XML文件,该文件包含数据表的信息(值)。我使用CSS设置表格样式,并且一切正常。 为了获得更好的用户体验,我想知道是否有可能根据其值动态更改每个单元格的背景颜色? 例如: 每个包含小于5的数字的单元格都有红色背景色; 每个大于等于“ 5”的单元格具有绿色背景色。 我对此的第一个解决方案是使用Javascript-但我想知道是否有办法仅使用CSS样式来解决此问题? 问题

  • 问题内容: 我试图从基于值的多维数组中删除元素。在这种情况下,如果子数组的键“ year”的值为2011,则我希望该子数组消失。 仅作记录:我正在运行PHP 5.2。 我的数组如下所示: 问题答案: 尝试这个: 然后,您将这样称呼它:

  • 有人能帮忙吗?我有一个现有代码,该代码当前根据V列中的单元格值(上诉记录)将整行数据从一张表(质量日志)复制到另一张表(上诉日志)。 之前,它已经从原始(质量日志)表中删除了该行,但我现在希望更改代码,以便将单元格值更改为(正在上诉),然后将其移动到下一页(上诉日志)。 请参阅下面我的代码。我已用**表示我试图更改代码