Нужна помощь с Appscript

Вопрос или проблема

function addbutton() {
  // Получаем активную таблицу и лист
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // Получаем значения из указанных ячеек
  var dr_no = sheet.getRange('E6').getValue();
  var sku = sheet.getRange('E8').getValue();
  var item = sheet.getRange('E10').getValue();
  var quantity = sheet.getRange('E12').getValue();
  var price = sheet.getRange('E14').getValue();
  
  // Определяем диапазон, куда будут вставлены данные (строка 17, столбцы A до E)
  var targetRange = sheet.getRange(17, 1, 1, 5); // Строка 17, начиная со столбца A (1), 1 строка, 5 столбцов

  // Устанавливаем значения в целевой диапазон
  targetRange.setValues([[dr_no, sku, item, quantity, price]]);
}

я хочу добавить, чтобы заполняемые данные в строке 17 шли до бесконечности. Я хочу, чтобы в столбце F были данные, полученные в результате умножения D на E. и так далее.

Расчет количество * цена

вы можете добавить этот подход к вашей задаче

var result = quantity * price;
  sheet.getRange(nextRow, 6).setValue(result);

и найдите следующую пустую строку, начиная с строки 17 в столбце A

  var lastRow = sheet.getLastRow();
  var nextRow = lastRow >= 17 ? lastRow + 1 : 17;

Полный модифицированный скрипт

function addbutton() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var dr_no = sheet.getRange('E6').getValue();
  var sku = sheet.getRange('E8').getValue();
  var item = sheet.getRange('E10').getValue();
  var quantity = sheet.getRange('E12').getValue();
  var price = sheet.getRange('E14').getValue();
  var lastRow = sheet.getLastRow();
  var nextRow = lastRow >= 17 ? lastRow + 1 : 17;
  var targetRange = sheet.getRange(nextRow, 1, 1, 5); 
  targetRange.setValues([[dr_no, sku, item, quantity, price]]);
  
  var result = quantity * price;
  sheet.getRange(nextRow, 6).setValue(result);
}

Пример вывода

spreadsheet

Справка

Операторы

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

.

Ответ или решение

Вопрос: Помощь с App Script для Google Таблиц

Вам необходимо добавить скрипт в Google Таблицы с целью автоматизации вставки данных из определённых ячеек и расчёта итоговой стоимости на основании количества и цены. Давайте разберёмся, как это правильно реализовать.

Исходный код

Ваш исходный скрипт для функции addbutton выглядит следующим образом:

function addbutton() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  var dr_no = sheet.getRange('E6').getValue();
  var sku = sheet.getRange('E8').getValue();
  var item = sheet.getRange('E10').getValue();
  var quantity = sheet.getRange('E12').getValue();
  var price = sheet.getRange('E14').getValue();

  var targetRange = sheet.getRange(17, 1, 1, 5); // Row 17, starting from Column A (1), 1 row, 5 columns

  targetRange.setValues([[dr_no, sku, item, quantity, price]]);
}

Задача

Ваша задача состоит в том, чтобы данные, помещенные в строку 17, автоматически добавлялись в следующую пустую строку ниже, а также чтобы в колонке F вычислялось произведение quantity * price.

Решение

Чтобы достичь желаемого результата, вам необходимо внести следующие изменения в ваш исходный код:

  1. Находить следующую пустую строку, начиная с 17-й.
  2. Расчитывать итоговую стоимость.
  3. Записывать результат в колонку F.

Ниже приведен исправленный и дополненный код:

function addbutton() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // Получаем значения из указанных ячеек
  var dr_no = sheet.getRange('E6').getValue();
  var sku = sheet.getRange('E8').getValue();
  var item = sheet.getRange('E10').getValue();
  var quantity = sheet.getRange('E12').getValue();
  var price = sheet.getRange('E14').getValue();

  // Находим последнюю заполненную строку
  var lastRow = sheet.getLastRow();
  var nextRow = lastRow >= 17 ? lastRow + 1 : 17; // Следующая строка для заполнения

  // Записываем значения в целевой диапазон
  var targetRange = sheet.getRange(nextRow, 1, 1, 5); 
  targetRange.setValues([[dr_no, sku, item, quantity, price]]);

  // Рассчитываем итоговую стоимость и записываем в колонку F
  var result = quantity * price;
  sheet.getRange(nextRow, 6).setValue(result);
}

Результаты

Когда вы выполните этот код, данные из ячеек E6, E8, E10, E12 и E14 будут автоматически добавлены в следующую пустую строку (начиная с 17), а итоговая стоимость (количество умноженное на цену) будет записана в колонку F.

Примечания:

  1. Убедитесь, что в ячейках E12 и E14 хранятся числовые значения, чтобы избежать ошибок при умножении.
  2. В случае возникновения каких-либо проблем или необходимости уточнения задач, пожалуйста, сообщите, чтобы я мог скорректировать решение в соответствии с вашими требованиями.

Заключение

Данное решение основано на использовании Google Apps Script для автоматизации работы с данными в Google Таблицах. Оно значительно упростит вашу работу и снизит вероятность ошибок при вводе данных. Если вам нужна дополнительная помощь или хотите внести изменения в функционал, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...