【问题标题】: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 号。

标签: google-apps-script google-sheets


【解决方案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 循环获取最后一列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多