@Nik32

Как скопировать скриптом формулу?

Здравствуйте подскажите как скриптом можно скопировать формулу из ячейки "J3" в последнюю не заполненную ячейку столбца "J:J", соответственно, чтобы при копировании менялись ссылки на ячейки. Т.е выполнял обычное действие, скопировать ячейку и вставить в последнюю не заполненную ячейку, соответственно ссылки тоже логически поменяются.
Сделал такой скрипт
function myFunction222() {
// The code below copies only the values of the first 5 columns over to the 6th column.
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("A1").copyTo(sheet.getRange(sheet.getLastColumn() + 1,1), SpreadsheetApp.CopyPasteType.PASTE_VALUES);
}
, а где прописать, чтобы он искал последнюю не заполненную ячейку в столбце "A:A"?
  • Вопрос задан
  • 1352 просмотра
Пригласить эксперта
Ответы на вопрос 2
Fzero0
@Fzero0
Вечный студент
Ну не знаю то что вы хотели или нет
function copyFormulas () {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  sheet.getRange("B2:B"+sheet.getLastRow()).setFormulaR1C1(sheet.getRange("B1").getFormulaR1C1());
}
Ответ написан
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Вам нужно

/**
 * User action. Runs the snippet
 */
function run2() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const base = sheet.getRange('J3:J');
  const colFormula = sheet.getRange('J3');
  draggDownOneFormula_(base, colFormula);
}

/**
 * @param {GoogleAppsScript.Spreadsheet.Range} base
 * @param {GoogleAppsScript.Spreadsheet.Range} colFormula
 */
function draggDownOneFormula_(base, colFormula) {
  const baseValues = base.getValues();
  const lastBase =
    baseValues.length - baseValues.reverse().findIndex(row => row[0] !== '');
  const colFormulaFormula = colFormula.getFormula();
  colFormula
    .getSheet()
    .getRange(base.getRow(), colFormula.getColumn(), lastBase + 1)
    .setFormula(colFormulaFormula);
}


Сниппет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы