Кэшировать/запомнить нефиксированное значение ячейки и вставить его в другую ячейку

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

// КОПИРОВАТЬ ЗНАЧЕНИЕ и // ВСТАВИТЬ СКОПИРОВАННОЕ ЗНАЧЕНИЕ - моя проблема, потому что у меня нет фиксированной ячейки.

Изображение: оранжевое значение в оранжевой ячейке

// Jump to the End
spreadsheet.getRange('G10').activate();
spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).activate();

// go one step to the right
spreadsheet.getCurrentCell().offset(0, 1).activate();

// COPY VALUE
???

// go six steps to the right and PASTE THE COPIED VALUE
spreadsheet.getCurrentCell().offset(0, 6).activate();
spreadsheet.getRange('???').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

Спасибо!

Обновлено:

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

Tanaike 17.02.2023 03:30

Значение исходит из последней ячейки в столбце G +1 справа от столбца H. Вот почему я использую SpreadsheetApp.Direction.DOWN. Я хочу скопировать значение из одной ячейки в столбце H в столбец N, но в той же строке. Столбцы всегда одинаковы, но строки меняются при каждой записи. Я добавляю другое изображение.

Sebastian3000 17.02.2023 03:56

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

Tanaike 17.02.2023 06:31
Laravel с Turbo JS
Laravel с Turbo JS
Turbo - это библиотека JavaScript для упрощения создания быстрых и высокоинтерактивных веб-приложений. Она работает с помощью техники под названием...
Слишком много useState? Давайте useReducer!
Слишком много useState? Давайте useReducer!
Современный фронтенд похож на старую добрую веб-разработку, но с одной загвоздкой: страница в браузере так же сложна, как и бэкенд.
Типы данных JavaScript
Типы данных JavaScript
В JavaScript существует несколько типов данных, включая примитивные типы данных и ссылочные типы данных. Вот краткое объяснение различных типов данных...
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик Модуль flexbox, также известный как гибкий модуль разметки box, помогает эффективно проектировать и...
Введение в раздел "Заголовок" в HTML
Введение в раздел "Заголовок" в HTML
Говорят, что лучшее о человеке можно увидеть только изнутри, и это относится и к веб-страницам HTML! Причина, по которой некоторые веб-страницы не...
Как React Helmet спасает меня при разделении файлов CSS?
Как React Helmet спасает меня при разделении файлов CSS?
Многие новички могут столкнуться с проблемой, когда одна страница с CSS наследует свойства от другой страницы с другим CSS. У меня было много проблем,...
1
3
63
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуй это:

function myFunction() {
  
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheet = ss.getActiveSheet(); 
  var lastrow = sheet.getLastRow(); 
  var getval = sheet.getRange(lastrow,2).getValue();
  sheet.getRange(lastrow, 2).offset(0,6).setValue(getval);

}

Что это делает, так это то, что он переходит к последней строке листа и получает значение lat строки Col2, смещает 6 ячеек вправо и копирует значение в заданное смещение.

Ответ принят как подходящий

Из The value comes from the last Cell in column G +1 to the right from column H. That's why I use SpreadsheetApp.Direction.DOWN. I want to copy the value from the single Cell in column H to column N, but in the same row. The columns are always the same, but the rows change with every Entry. я понял ваш ожидаемый результат следующим образом.

  • Вы хотите скопировать значение из столбца «H» последней строки в столбец «N».

В таком случае, как насчет следующей модификации?

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

Последнюю строку можно получить с помощью getLastRow() в Class Sheet. И, чтобы скопировать значение, можно использовать copyTo класса Rabge.

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet(); // or  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
  var srcRange = sheet.getRange("H" + sheet.getLastRow());
  srcRange.copyTo(srcRange.offset(0, 6), { contentsOnly: true });
}
  • В этом случае значение из столбца «H» последней строки копируется в столбец «N».

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

    function myFunction() {
      var sheet = SpreadsheetApp.getActiveSheet(); // or  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
      var srcRange = sheet.getRange("H" + sheet.getLastRow());
      srcRange.offset(0, 6).setValue(srcRange.getValue());
    }
    

Использованная литература:

Другие вопросы по теме