如何使用谷歌应用脚​​本找到最后一列?

Posted

技术标签:

【中文标题】如何使用谷歌应用脚​​本找到最后一列?【英文标题】:How to find the last column using google apps script? 【发布时间】:2021-08-07 15:58:40 【问题描述】:

我想使用onEdit 函数将数据从G11:G22 复制到工作表的最后一列,从第11 行开始。因此,一旦我在单元格F7 中选择Transfer,就会触发脚本。运行脚本后,数据应出现在H11:H22 范围内,因为 H 列是工作表中的最后一列。我应该如何做到这一点?这是我尝试过的:

function onEdit(e)
  var ss = SpreadsheetApp.getActiveSheet();
  var lastrow = ss.getLastRow()

  for( var k = 2; k <= lastrow ; k++) 
    var m = 1; 
      while( sheet.getRange(k,m).isBlank() == false) 
        m = m +1;
      
      var lastcolumn = m
  
  var destRange = ss.getRange(11,lastcolumn+1)
  
  if (e.range.columnStart == 6 && e.range.rowStart == 7)
    if (e.value == 'Transfer')
      var source = ss.getRange("G11:G22")
      source.copyTo (destRange, contentsOnly: true)
      e.range.clearContent()
   
  

我认为问题来自For loop,但我不知道出了什么问题。希望能得到一些帮助,谢谢。

【问题讨论】:

根据你的截图:你为什么不能只使用ss.getLastColumn() 方法?它应该给你 7 号。 【参考方案1】:

根据你的截图,我想你可以使用getLastColumn()

function onEdit(e) 
  var ss = SpreadsheetApp.getActiveSheet();
  var destRange = ss.getRange(11, ss.getLastColumn() + 1)

  if (e.range.columnStart == 6 && e.range.rowStart == 7) 
    if (e.value == 'Transfer') 
      var source = ss.getRange("G11:G22")
      source.copyTo(destRange,  contentsOnly: true )
      e.range.clearContent()
    
  

如果表格右侧没有更多填充单元格,则无需for 循环获取最后一列。

【讨论】:

以上是关于如何使用谷歌应用脚​​本找到最后一列?的主要内容,如果未能解决你的问题,请参考以下文章