insertColumnsAfter создает больше столбцов, чем запрошено - PullRequest
0 голосов
/ 15 марта 2019

Я запрашиваю добавить столбец в электронную таблицу, копируя текущий последний (формулы и все) в новый последний столбец:

function addCol(ss,shName) {
  var sh = ss.getSheetByName(shName), lRow = sh.getLastRow(); 
  var lCol = sh.getLastColumn(), range = sh.getRange(1,lCol,lRow,lCol);
  sh.insertColumnsAfter(lCol,1);
  range.copyTo(sh.getRange(1, lCol+1, lRow, lCol+1), {contentsOnly:false});
  return sh;
}

Вызов этой функции добавляет два столбца в электронную таблицу.Код все еще работает (устанавливает новый столбец после текущего последнего активного столбца ..., но также добавляет пустой столбец впоследствии), но пытается сохранить количество столбцов как минимум, и это увеличивает количество столбцов в два раза больше запросов.

... У меня есть функция «зеркала», которая вставляет строку внизу электронной таблицы и вставляет только одну по запросу.Итак, я предполагаю, что для Google это нормальное поведение - добавлять столбцы без причины.

Есть идеи, почему каждый раз, когда я запрашиваю один столбец, создаются 2 столбца?

1 Ответ

0 голосов
/ 15 марта 2019

Чтобы скопировать последний столбец в новый последний столбец, попробуйте это -

function addCol(ss,shName) {
  var sh = ss.getSheetByName(shName), lRow = sh.getLastRow(); 
  var lCol = sh.getLastColumn(), range = sh.getRange(1,lCol,lRow,1);
  sh.insertColumnsAfter(lCol,1);
  range.copyTo(sh.getRange(1, lCol+1, lRow, 1), {contentsOnly:false});
  return sh;
}
...