![](/img/trans.png)
[英]How to set the range until last row of a column in sheet using Google App Script
[英]How to get last cell of a particular column in google sheet using google app script?
我想將內容添加到特定列的最后一行。
例如我的Google工作表的當前狀態是
x A B C
1 value1ofA value1ofB value1ofC
2 value2ofA value2ofB value2ofC
3 value3ofB value3ofC
4 value4ofC
有時我想在C列中添加值value5ofC
有時我想在B列中添加值value4ofB
有時我想在A列中添加值value3ofA
我知道如何使用范圍在單個單元格中插入值
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheets()[0];
sheet.getRange(5, 5).setValue('value5ofC') // This will set content at cell of 5th row and 5th column
在此示例代碼中,我知道C列最后一個單元格的位置,如果要使其自動化,我想找出最后一個單元格的位置,以便可以用一些內容填充它。
我可以使用sheet.getLastRow()
找出整個工作表的最后一行,但是我想要特定列的最后一行。
如何找到任何列的最后一個單元格的位置?
如果我對您的問題的理解正確,那么該答案如何? 我認為針對您的情況有幾種解決方案。 因此,請考慮其中的3個。
在此示例腳本中,它通過給出列字母來檢索特定列的最后一行。 作為示例,檢索列“ C”的最后一行。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheets()[0];
var col = "C"; // Please input the column letter.
var res = sheet.getRange(col + ":" + col).getValues().filter(String).length;
Logger.log(res)
當此腳本用於示例表時,將返回4。
在此示例腳本中,它檢索所有列的最后一行。 首先,檢索單元的所有值。 然后,對包含值的數組進行轉置,並檢索最后一行。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheets()[0];
var values = sheet.getDataRange().getValues();
var res = values[0].map(function(_, i) {return values.map(function(r) {return r[i]}).filter(String).length});
Logger.log(res)
當此腳本用於示例表時,將返回[2.0, 3.0, 4.0]
的數組。 在這種情況下,數組的索引表示列索引。 因此,在這種情況下,列“ A”,“ B”和“ C”的最后一行分別表示2、3和4。
模式1和2可以用於工作表,該列的所有單元格都填充有值。 從您的樣本表中,我提出了以上兩種模式。 但是,如果要檢索包含空單元格的列的最后一行,則可以使用以下腳本。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheets()[0];
var col = "C";
var values = sheet.getRange(col + ":" + col).getValues();
var lastRow;
for (var i = values.length - 1; i >= 0; i--) {
if (values[i][0]) {
lastRow = i + 1;
break;
}
}
Logger.log(lastRow)
如果我誤解了您的問題,請告訴我。 我想修改它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.