首先,我是一个脚本菜鸟。
我正在尝试编写一个调用名为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])
提前谢谢你。
答案 0 :(得分:1)
getLastRow()返回包含内容的最后一行,即使最后一行中单元格的内容是空字符串(""
)与空白单元格不同,所以你的猜测是正确,""
的数组可能导致最后一行不符合您的预期。
关于正确的方法,如果你能够避免添加空字符串然后修复它。如果你不能这样做,你应该定义你自己的假设,关于哪一行可能是最后一行,或者比较从底部到顶部的每一行,直到找到非空行。