Есть ли простой способ сдвинуть клетки вниз? - Google App Script - PullRequest
1 голос
/ 15 апреля 2020

В настоящее время у меня есть программа, в которую я вставляю значение в ячейку, в которой уже есть значение, и мое желаемое поведение - сдвигать вниз каждое значение, которое находится в этой ячейке, вниз.

Первоначально я думал о том, чтобы создать al oop, который бы присваивал текущее значение ячейки строке + 1, но затем мне пришлось бы впоследствии проверять каждую ячейку вниз.

Я сталкивался с этим связанный вопрос: Сдвиг значений в Google Spreadsheet , но как я могу применить из индекса вставляемое значение?

Есть ли простой способ сделать это?

Ваша помощь очень ценится.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2020
  • Вы хотите поместить значения с помощью операции сдвига вниз, используя Google Apps Script.
  • Например, когда значение помещается в ячейку "A1", вы хотите поместить значения в тот же столбец с помощью операции сдвига вниз со скриптом.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

В этом ответе я хотел бы предложить использовать метод autoFill в классе Range. autoFill было добавлено 10 октября 2017 года. Ссылка

Пример сценария:

function myFunction() {
  const sheet = SpreadsheetApp.getActiveSheet();
  sheet
    .getRange("A1")
    .autoFill(sheet.getRange("A1:A"), SpreadsheetApp.AutoFillSeries.ALTERNATE_SERIES);
}
  • В этом примере сценария, например, когда 1 помещается в ячейку "A1" и запускается функция myFunction, ячейки "A2: A" становятся 2, 3, 4, 5,,,.
    • Если вы хотите сделать ячейки с «A2: A» на 1, 1, 1, 1, 1,,,, измените SpreadsheetApp.AutoFillSeries.ALTERNATE_SERIES на SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES.
  • Также в этом примере Сценарий, например, когда =B1 помещается в ячейку "A1" и выполняется функция myFunction, ячейки "A2: A" становятся =B2, =B3, =B4, =B5,,,.

Ссылки:

Если я неправильно понял ваш вопрос и это был не тот результат, которого вы ожидаете, я прошу прощения.

0 голосов
/ 16 апреля 2020

Я обнаружил, что этот метод сделал то, что мне было нужно:

https://developers.google.com/apps-script/reference/spreadsheet/range#insertcellsshiftdimension

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var range = sheet.getRange("A1:D10");
range.insertCells(SpreadsheetApp.Dimension.COLUMNS);

Где диапазон может быть одной ячейкой, из которой вы хотите сместить вниз. Также укажите, что размер равен ROWS . Пример:

sheet.getRange(2,4).insertCells(SpreadsheetApp.Dimension.ROWS);

Приведенный выше метод сместит значения вниз со строки 2 столбца 4 (D).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...