Google Таблицы, Вставить частичную строку - PullRequest
1 голос
/ 27 мая 2020

У меня есть сценарий, который я использую для вставки «транзакций» в лист. Фактическая запись транзакции имеет ширину всего около 5 столбцов. Можно было каждый раз вставлять новую строку, потому что другие столбцы не использовались. Но теперь я хочу создать подсписок транзакций справа, чтобы быстро разбить наиболее распространенный тип. Я не хочу использовать фильтр столбцов, потому что я открываю доступ к документу в режиме только для чтения, и по очевидным причинам некоторым лицам не разрешено изменять документ, но они все равно должны видеть подсписок. Когда скрипт вставляет новую строку, ссылки из остальной части листа тоже изменяются, даже с префиксом $ для части строки ссылки на ячейку.

function InsertNewTransactionOnDemandAccount( date, value, title, fontWeight, fontType, type, account )
{
  if( isNaN(value) ) return;
  var activeSpreadsheetApp = SpreadsheetApp.getActive();
  var activeSpreadsheet = activeSpreadsheetApp.getSheetByName( 'On Demand Account' );
  var activeCell = activeSpreadsheet.getRange( 6, 1 );
  var activeRow = activeCell.getRow();
  var activeColumn = activeCell.getColumn();

  activeSpreadsheet.insertRowBefore( activeRow );

Я просмотрел различные форумы, которые я могу найти по этой теме, но не могу найти решение. Строка insertRowBefore - это то место, где я хотел бы просто вставить строку шириной в пять столбцов.

Ниже приведен отредактированный снимок экрана. Да, это счетчик пособий и расходов для моих детей. Да, мне нужно было удерживать суммы для их конфиденциальности и моей тоже.

Redacted screen shot

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете использовать moveTo (target) , чтобы сместить первые 5 столбцов на одну строку вниз, игнорируя остальные столбцы.

Просто замените эту строку:

activeSpreadsheet.insertRowBefore(activeRow);

Здесь:

var rangeToMove = activeSpreadsheet.getRange(activeRow, 1, activeSpreadsheet.getLastRow() - activeRow + 1, 5);
rangeToMove.moveTo(rangeToMove.offset(1, 0));

Примечания:

  • Я предположил, что диапазон для смещения вниз соответствует первым 5 столбцам (от A до E). Отредактируйте второй и / или четвертый параметр getRange, если это не так.

Ссылка:

...