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

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

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

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

// 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
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
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());
    }
    

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

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