1

我有 9108 行遵循特定顺序的谷歌表,但我努力将第二行移动到第一行旁边和第三行旁边(下图),我不能只取所有 9000 行并将其拆分为 3000 列,我试图找到这样的脚本解决方案:

在移动后的
每一行之后移动每一行到下一个“其他”行
删除空白行

并在不破坏顺序的情况下处理工作表中的所有行

图片与示例

感谢任何人的帮助或寻找解决方案。

编辑:

这可以满足我的需要,但是它会创建列并且有 9108 行,因为单元格太多,它会在 100 行后停止。

function Test() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  var ss = spreadsheet.getActiveSheet()

  var index = 1
  var rowSpan = 1
  var columnSpan = 1

  while (index <= ss.getLastRow()) {
    ss.getRange(index, 1, 1, index + 1).moveTo(ss.getRange(rowSpan, columnSpan))
    columnSpan = columnSpan + 3

    if (columnSpan == 13) {
      columnSpan = 1
      rowSpan++
    }

    index++
  }
}
4

1 回答 1

0

请尝试使用此功能:

function Test() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  var ss = spreadsheet.getActiveSheet()
  
  var index = 1
  var rowSpan = 1
  var columnSpan = 1
  var value
  
  while (index <= ss.getLastRow()) {
    
    value = ss.getRange(index, 1).getValue()
    
    ss.getRange(rowSpan, columnSpan).setValue(value)
    
    columnSpan++
      
    if (columnSpan == 4) {
      columnSpan = 1
      rowSpan++
    }
    
    index++
 }
}

您可以注册一个新宏,然后在其中复制/粘贴此函数的内容。

之后,您可以清除不需要的额外数据。

于 2018-08-01T14:16:43.993 回答