Вопрос или проблема
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);
}
Пример вывода
Справка
Примечание: Пожалуйста, проверьте результат, чтобы подтвердить, соответствует ли он вашим ожиданиям. Если нет, пожалуйста, предоставьте ваш ожидаемый результат, чтобы я мог скорректировать свой ответ.
.
Ответ или решение
Вопрос: Помощь с 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
.
Решение
Чтобы достичь желаемого результата, вам необходимо внести следующие изменения в ваш исходный код:
- Находить следующую пустую строку, начиная с 17-й.
- Расчитывать итоговую стоимость.
- Записывать результат в колонку 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.
Примечания:
- Убедитесь, что в ячейках E12 и E14 хранятся числовые значения, чтобы избежать ошибок при умножении.
- В случае возникновения каких-либо проблем или необходимости уточнения задач, пожалуйста, сообщите, чтобы я мог скорректировать решение в соответствии с вашими требованиями.
Заключение
Данное решение основано на использовании Google Apps Script для автоматизации работы с данными в Google Таблицах. Оно значительно упростит вашу работу и снизит вероятность ошибок при вводе данных. Если вам нужна дополнительная помощь или хотите внести изменения в функционал, не стесняйтесь обращаться!