我正在嘗試獲取 Google 表格第一行的最后一個非空列。關于列的最后一行,我找到了很多幫助,但我想反過來。
我嘗試使用 GetLastColumn,但我必須誤解“包含內容”的含義(https://developers.google.com/apps-script/reference/spreadsheet/sheet?hl=en#getlastcolumn)。
var sheet = SpreadsheetApp.getActive().getActiveSheet();
var last_column = sheet.getRange(1,1,1,30).getLastColumn();
Logger.log(last_column)
這將回傳“30”而不是“16”,盡管 P1 是第 1 行的最后一個非空單元格。我不能使用 var last_column = sheet.getLastColumn();,因為我想用一個值填充 Q2、Q3、Q4 等。一旦發生這種情況,作業表的最后一列是 Q,而不是 P。
事實上,在我看來,將范圍設定為任意最大列的解決方案并不理想,但我無法將范圍設定為整行(并且不超過一行)。
但主要問題是:我應該怎樣才能獲得“16”的回報?
uj5u.com熱心網友回復:
描述
要查找行的第一個空單元格,請使用 col 是非空單元格。
let range = some row of a spreadsheet
let col = range.getNextDataCell(SpreadsheetApp.Direction.NEXT);
這相當于在鍵盤上鍵入 CTRL Right。
要查找列使用的第一個空單元格,行是非空單元格。
let range = some column of a spreadsheet
let row = range.getNextDataCell(SpreadsheetApp.Direction.DOWN);
這相當于在鍵盤上鍵入 CTRL Down
如果資料范圍內有空白單元格,它將停在那里
參考
- Range.getNextDataCell()
uj5u.com熱心網友回復:
獲取行寬
function getRowWidth(row, sh, ss) {
var ss = ss || SpreadsheetApp.getActive();
var sh = sh || ss.getActiveSheet();
var row = row || sh.getActiveCell().getRow();
var rcA = [];
if(sh.getLastColumn()){rcA = sh.getRange(row, 1, 1, sh.getLastColumn()).getValues().flat().reverse();}
let s = 0;
for (let i = 0; i < rcA.length; i ) {
if (rcA[i].toString().length == 0) {
s ;
} else {
break;
}
}
return rcA.length - s;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/487909.html
上一篇:應用腳本日期格式問題
