【问题标题】:Google Appscript: Place text in the first empty row of a specific columnGoogle Appscript:将文本放在特定列的第一个空行中
【发布时间】:2020-10-03 16:36:18
【问题描述】:

我想在特定列的第一个空行中放置文本。我已经尝试关注链接Faster way to find the first empty row in a Google Sheet column ,我相信我应该使用不同的东西而不是使用return,因为我想将文本放在该列中而不是转到该列。

我尝试了代码来放置文本,但我只能针对特定的行和列这样做

var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getRange(1,3);
cell.setValue('hello');

如何在下面的代码中实现上述内容,即一旦迭代完成,将文本放在 C 列的第一个空行中

var sheet = SpreadsheetApp.getActiveSheet();
var column = sheet.getRange('C:C');//specific column
var values = column.getValues();//get all data in that column 

var row = 0;
for (var row=0; row<values.length; row++) {
  if (!values[row].join("")) break;
}
return ('hello');

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    我认为您不需要在存储之前检查电子表格中的行是否为空

    var sheet = SpreadsheetApp.getActiveSheet();
    sheet.getRange(A:A).setValue("some_data");
    

    通过使用它,您可以简单地将值存储在工作表的第一个空行中。尝试后请查看并回复我

    【讨论】:

      【解决方案2】:

      这个修改怎么样?

      修改点:

      • 在您的脚本中,当 for 循环完成时,row 是第一个空行号。这个值可以像sheet.getRange(row + 1, 3).setValue('hello');一样使用。
      • C:C修改为'C1:C' + sheet.getLastRow(),可以缩小搜索范围。

      当以上几点反映到你的脚本中时,它变成如下。

      修改脚本:

      function myFunction() {
        var sheet = SpreadsheetApp.getActiveSheet();
        var column = sheet.getRange('C1:C' + sheet.getLastRow());  // Modified
        var values = column.getValues();
        var row = 0;
        for (row=0; row<values.length; row++) {
          if (!values[row].join("")) break;
        }
        sheet.getRange(row + 1, 3).setValue('hello'); // Added
      }
      
      • 当您运行修改后的脚本时,hello 被放入活动工作表中第一个空行的“C”列。

      其他模式:

      作为其他方法,在您的情况下,您也许可以使用getNextDataCell,如下所示。

      SpreadsheetApp
        .getActiveSheet()
        .getRange('C1')
        .getNextDataCell(SpreadsheetApp.Direction.DOWN)
        .offset(1, 0)
        .setValue('hello');
      

      注意:

      • 如果要将值放在“C”列的最后一行,请测试以下脚本。

        var sheet = SpreadsheetApp.getActiveSheet();
        sheet.getRange(sheet.getLastRow() + 1, 3).setValue('hello');
        

      参考资料:

      【讨论】:

        猜你喜欢
        • 2016-08-11
        • 1970-01-01
        • 1970-01-01
        • 2021-01-17
        • 1970-01-01
        • 1970-01-01
        • 2022-10-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多