google-apps-script - 使用 Apps 脚本删除 Google 表格中的空行后复制数据?

标签 google-apps-script google-sheets google-sheets-macros

下面的代码工作正常。它正在排序、删除重复项并删除空行。然后我只想将数据行复制到最后一个数据行之后。但代码正在复制具有空行的数据行。复制时需要避免空行


var column = 3;   
range.sort({column: column, ascending:true});   
range.removeDuplicates([column]);   

//now delete empty rows if any   
for (var i = range.getHeight(); i >= 1; i--){
    if(range.getCell(i, 1).isBlank()){
            sheet.deleteRow(range.getCell(i, 1).getRow());
    }   
}
//For Double periods in a class    
var dataToCopy = range.getValues(); //Gets the values of the source range in a 2 dimensional array    
var copyData = sheet.getRange(range.getLastRow()+1,1,dataToCopy.length,dataToCopy[0].length).setValues(dataToCopy);

最佳答案

我相信您的目标如下。

  • 脚本中的 for 循环完成后,您希望检索不包含空行的值。

对于这个,这个答案怎么样?

修改点:

  • 在此答案中,对删除行数进行计数,并且该数量从 range.getValues();range 中减少。这样,dataToCopy 就不会包含空行。

当以上几点反射(reflect)到您的脚本中时,它会变成如下所示。

修改后的脚本:

var column = 3;
range.sort({column: column, ascending:true});
range.removeDuplicates([column]);

//now delete empty rows if any

var deleteRows = 0;  // <--- Added

for (var i = range.getHeight(); i >= 1; i--){
    if(range.getCell(i, 1).isBlank()){
      sheet.deleteRow(range.getCell(i, 1).getRow());
      deleteRows++; // <--- Added
    }
}
//For Double periods in a class
var dataToCopy = range.offset(0, 0, range.getNumRows() - deleteRows).getValues();  // <--- Modified
var copyData = sheet.getRange(sheet.getLastRow()+1,1,dataToCopy.length,dataToCopy[0].length).setValues(dataToCopy); // <--- Modified
  • 如果您要将值放入范围的最后一行,请将最后一行修改为脚本的最后一行。

引用文献:

关于google-apps-script - 使用 Apps 脚本删除 Google 表格中的空行后复制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62227320/

相关文章:

google-apps-script - 如何在其他工作表的应用程序脚本中请求或获得谷歌电子表格访问权限?

javascript - 为什么我的 google apps 脚本中的数组会被覆盖?

google-apps-script - 自动调整 Google 表格中的列大小

google-apps-script - 您可以将 UrlFetchApp 转换为 Apps 脚本中的 promise 吗?

google-apps-script - appmaker 中的 Accordion

google-apps-script - 超过一万行的 TextFinder 实例的 findNext 出现服务错误

javascript - 如何将 newDataValidation() 代码块添加到我的 Google 应用程序脚本中

google-sheets - Google Sheets - 根据值查找最近日期

function - 自动完成通过 Google 表格中的脚本添加的自定义函数

javascript - Google Apps 脚本错误值