使用getlastrow

时间:2018-01-09 18:11:00

标签: google-apps-script google-sheets

首先,我是一个脚本菜鸟。

我正在尝试编写一个调用名为lastrow的变量的函数。当我使用getlastRow时,它会返回工作表底部没有数据的行。我正在使用数组公式,使用“”..我相信这会导致lastrow成为工作表的底部。

有没有办法获得正确的最后一行实际数据?

我一直在修改Andrew Roberts的剧本。这是一些代码

var copyFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy(),
  copyId = copyFile.getId(),
  copyDoc = DocumentApp.openById(copyId),
  copyBody = copyDoc.getActiveSection(),
  activeSheet = SpreadsheetApp.getActiveSheet(),
  lastRow = activeSheet.getLastRow(),
  numberOfColumns = activeSheet.getLastColumn(),
  activeRowIndex = activeSheet.getActiveRange().getRowIndex(),
  activeRow = activeSheet.getRange(lastRow, 1, 1, numberOfColumns).getValues(),
  headerRow = activeSheet.getRange(1, 1, 1, numberOfColumns).getValues(),
  columnIndex = 0,
  recipient = activeSheet.getRange(lastRow, 24).getValues();

for (;columnIndex < headerRow[0].length; columnIndex++) {

copyBody.replaceText('%' + headerRow[0][columnIndex] + '%', 
                     lastRow[columnIndex])    

提前谢谢你。

1 个答案:

答案 0 :(得分:1)

getLastRow()返回包含内容的最后一行,即使最后一行中单元格的内容是空字符串("")与空白单元格不同,所以你的猜测是正确,""的数组可能导致最后一行不符合您的预期。

关于正确的方法,如果你能够避免添加空字符串然后修复它。如果你不能这样做,你应该定义你自己的假设,关于哪一行可能是最后一行,或者比较从底部到顶部的每一行,直到找到非空行。