带有空白行的自动填充数据 - Google 表格/Google Apps 脚本

Posted

技术标签:

【中文标题】带有空白行的自动填充数据 - Google 表格/Google Apps 脚本【英文标题】:AutoFill Data with Blank Rows - Google Sheets / Google Apps Script 【发布时间】:2020-05-14 12:25:12 【问题描述】:

我有下面的电子表格,我想自动填充人名。问题是名称之间有空白行。每个名称都与一个 sku2 一致,并且需要与所有位置内联。最多可以有 10 个空白行(取决于位置的数量)。

如果我可以循环这个也许

function LoopTillLr() 
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A2').activate();
  spreadsheet.getActiveRange().autoFillToNeighbor(SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
  spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).activate();
;

感谢任何帮助

【问题讨论】:

您想使用脚本执行此操作的任何具体原因?因为这可以很容易地使用 IF 公式来完成。 您能分享一个期望结果的样本吗? 【参考方案1】:

如果您只想根据变量 LOCATION 值复制 NAME 值,请使用此脚本:

function myFunction() 
  var ss = SpreadsheetApp.getActiveSheet();
  var lastRow = ss.getDataRange().getLastRow();

  for (var i = 1; i < lastRow+1; i++) 
    if (ss.getRange(i,1).getValue() == "") 
      var value = ss.getRange(i-1,1).getValue();
      ss.getRange(i,1).setValue(value);
    
  

确保 A2 不为空,否则脚本将失败。

【讨论】:

【参考方案2】:

如果是很多记录,你可以创建一个函数并运行它。以下内容一直执行到工作表末尾,因此请确保删除所有不需要的行或调整第二行中的范围。

function autoFillDown()
  const range = SpreadsheetApp.getActiveSheet().getRange("A:A");
  const rows = range.getValues();
  let outputArray = [];

  rows.forEach( row => 
    // if it contains a name, leave it
    if( row[0].length > 1) 
      outputArray.push( [row[0]] )       
    // otherwise replace it with the value above it
     else 
      outputArray.push( [outputArray[outputArray.length-1]] );
        
  );  
  range.setValues( outputArray );

【讨论】:

以上是关于带有空白行的自动填充数据 - Google 表格/Google Apps 脚本的主要内容,如果未能解决你的问题,请参考以下文章

运行 ZAPIER ZAP 后 Google 表格中的自动填充单元格

自动填充公式(跨电子表格运行) - Google 表格/应用程序脚本

Google 表格功能自动填充

Google 电子表格自动填充基于列的行

在EXCEL表格中,如何在每隔10行下面插入2行空白行?

从外部数据库自动加载 Google 电子表格数据