3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
如何使用JavaScript技巧?
var Avals = ss.getRange("A1:A").getValues();var Alast = Avals.filter(String).length;
我從這個(gè)答案中借鑒了這個(gè)想法。該Array.filter()
方法在Avals
數(shù)組上運(yùn)行,該數(shù)組包含A列中的所有單元格。通過(guò)對(duì)本機(jī)函數(shù)的構(gòu)造函數(shù)進(jìn)行過(guò)濾,我們只返回非null元素。
這僅適用于單個(gè)列; 如果范圍包含多個(gè)列,則結(jié)果filter()
將包括來(lái)自所有列的單元格,因此位于范圍的填充維度之外。

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
雖然沒(méi)有直接的公式,我可以想到,它不需要幾十行代碼來(lái)找出A列的最后一行。試試這個(gè)簡(jiǎn)單的函數(shù)。以正常方式使用其他功能在單元格中使用它=CountColA()
function CountColA(){ var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues(); for(var i = data.length-1 ; i >=0 ; i--){ if (data[i][0] != null && data[i][0] != ''){ return i+1 ; } }}

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
這將基于A列獲得表格中的最后一行。
function getLastDataRow(sheet) { var lastRow = sheet.getLastRow(); var range = sheet.getRange("A" + lastRow); if (range.getValue() !== "") { return lastRow; } else { return range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow(); } }
這修復(fù)了@mrityunjay-pandey部分正確答案。
要擴(kuò)展此答案以獲取最后一行和列,我們可以使用:
function columnToLetter(column) { var temp, letter = ''; while (column > 0) { temp = (column - 1) % 26; letter = String.fromCharCode(temp + 65) + letter; column = (column - temp - 1) / 26; } return letter;}function letterToColumn(letter) { var column = 0, length = letter.length; for (var i = 0; i < length; i++) { column += (letter.charCodeAt(i) - 64) * Math.pow(26, length - i - 1); } return column;}function getLastDataColumn(sheet) { var lastCol = sheet.getLastColumn(); var range = sheet.getRange(columnToLetter(lastCol) + "1"); if (range.getValue() !== "") { return lastCol; } else { return range.getNextDataCell(SpreadsheetApp.Direction.PREVIOUS).getColumn(); } }function getLastDataRow(sheet) { var lastRow = sheet.getLastRow(); var range = sheet.getRange("A" + lastRow); if (range.getValue() !== "") { return lastRow; } else { return range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow(); } }function run() { var sheet = SpreadsheetApp.getActiveSheet(); var [startRow, lastRow] = [2, getLastDataRow(sheet)]; var [startCol, lastCol] = [1, getLastDataColumn(sheet)];}
添加回答
舉報(bào)