Я пытаюсь изменить код из учебника о том, как удалить дубликаты строк с моего листа. Код прекрасно работает для прямых значений, но в некоторых моих строках есть ячейки с формулами гиперссылок, которые я не хочу терять.
Я думаю, что мне нужно сделать данные электронной таблицы в виде массива, а не просто использовать getValues. Прошло много времени с тех пор, как я должен был создать массив, поэтому я борюсь с лучшим способом сделать это. Мне понадобятся циклы для заполнения массива и операторы if, чтобы получить значения или формулы в зависимости от строки.
Вот код удаления дубликатов, который удаляет строки, если ячейка в столбцах A и B соответствует другой строке:
/**
* Removes duplicate rows from the current sheet.
*/
function removeDuplicates() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var newData = [];
for (var i in data) {
var row = data[i];
var duplicate = false;
for (var j in newData) {
if(row[0] == newData[j][0] && row[1] == newData[j][1]){
duplicate = true;
}
}
if (!duplicate) {
newData.push(row);
}
}
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
Так что вместо того, чтобы просто использовать одну строку для установки переменной данных, мне нужно построить массив со значениями и формулами, где это уместно. В противном случае я теряю свои гиперссылки. Как мне это сделать?
Изменить: Этот вопрос был решен с помощью ответа на другой вопрос. Контексты вопросов не совпадают, и другой вопрос не был обнаружен ни в одном из моих исследований, поэтому я считаю, что мой вопрос не является дубликатом.