Я хочу найти первую пустую ячейку в диапазоне. Этот код работает, за исключением того, что, как представляется, связан с колонки B.Скрипт Google Таблиц - получить первую пустую ячейку
function selectFirstEmptyRow() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
sheet.setActiveSelection(sheet.getRange("D"+getFirstEmptyRow()))
}
function getFirstEmptyRow() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
var row = 26;
for (var row=26; row<values.length; row++) {
if (!values[row].join("")) break;
}
return (row+1);
}
Когда я запустить его, он выбирает ячейку в D, однако находит заготовок на основе B.
Скажем, мы работаем в строках 10-20. В столбце B есть вещи в 10-12. Я запускаю это (что должно выполняться на D, насколько я могу видеть), он выберет D13 (потому что в B10: B12 есть вещи. Хотя ничего нет в D, он должен выбрать D10.
ОБНОВЛЕНИЕ :: :.
Так что я сделал некоторые изменения, которые вы предложили
function selectFirstEmptyRow() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
sheet.setActiveSelection(sheet.getRange("B"+getFirstEmptyRow()))
}
function getFirstEmptyRow() {
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow();
//getRange(row, column, numRows, numColumns)
var range = sheet.getRange(28, 2, lastRow - 28, 1);
var values = range.getValues();
var row = 28;
for (var i=0; i<values.length; i++) {
if (!values[i].join(" ")) break;
}
return (row+1);
}
он всегда выбирает строку 29 (я предполагаю, потому что он, начиная с 28 и у меня есть возвращение (строка + 1)
?
Спасибо за ответ. Я пробовал это. Он всегда выбирает строку 27 –
У вас есть лучший способ сделать это? Если так, я все уши. Я просто наткнулся на этот код, и я пытаюсь заставить его работать. –
Обновленный вопрос (этот форум неуловим). Я внес некоторые изменения, но всегда выбирает строку 29, а не первую пустую ячейку, я предполагаю, что она начинается с 28, а в конце - строка + 1. –