Привет всем. Я совершенно новичок в написании сценариев (извиняюсь, если я использую какие-то неправильные термины), но вчера мне удалось это совместить, однако функция с именем «increment» в конце, похоже, не работает как частьэтого сценария.
function ClearRange() {
//replace 'Sheet1' with your actual sheet name
var sheet = SpreadsheetApp.getActiveSpreadsheet()
//Inserts a row before populating it
sheet.insertRowAfter(37);
//the next three lines copy a preformatted line and paste it underneath
var source_range = sheet.getRange("A37:V37");
var target_range = sheet.getRange("A38:V38");
source_range.copyTo(target_range);
logData();
//the next lines clear the data form ready for new input
sheet.getRange('B5:D5').clearContent();
sheet.getRange('I5:O5').clearContent();
sheet.getRange('B11:G11').clearContent();
sheet.getRange('I11:P11').clearContent();
sheet.getRange('B18:D18').clearContent();
sheet.getRange('I18:K18').clearContent();
sheet.getRange('B24:F24').clearContent();
sheet.getRange('I24:M24').clearContent();
sheet.getRange('B31:G31').clearContent();
sheet.getRange('K28:Q28').clearContent();
}
function logData() {
// This will take the submitted data and put it into the proper row format
//This bit defines the destination cells
var sheet = SpreadsheetApp.getActiveSheet();
var thedateCell = sheet.getRange("A38");
var QuoteNoCell = sheet.getRange("B38")
var ClientCell = sheet.getRange("C38");
var ContactCell = sheet.getRange("E38");
var AddressCell = sheet.getRange("F38");
var QTOPDCell = sheet.getRange("N38");
var QMBSCell = sheet.getRange("O38");
var QCADDCell = sheet.getRange("P38");
var QTRAVDCell = sheet.getRange("Q38");
var QSODCell = sheet.getRange("R38");
//This bit defines the origin cells
var theDate = sheet.getRange("I28").getValue();
var QuoteNo = sheet.getRange("J28").getValue();
var Client = sheet.getRange("K28").getValue();
var Contact = sheet.getRange("L28").getValue();
var Address = sheet.getRange("M28").getValue();
var QTOPD = sheet.getRange("O19").getValue();
var QMBS = sheet.getRange("P19").getValue();
var QCADD = sheet.getRange("S19").getValue();
var QTRAVD = sheet.getRange("R19").getValue();
var QSOD = sheet.getRange("Q19").getValue();
//This bit transfers the data
thedateCell.setValue(theDate);
QuoteNoCell.setValue(QuoteNo);
ClientCell.setValue(Client);
ContactCell.setValue(Contact);
AddressCell.setValue(Address);
QTOPDCell.setValue(QTOPD);
QMBSCell.setValue(QMBS);
QCADDCell.setValue(QCADD);
QTRAVDCell.setValue(QTRAVD);
QSODCell.setValue(QSOD);
}
function increment() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getRange('J28');
sheet.setValue(Number(sheet.getValue()) + 1)
}
Я подозреваю, что это связано с тем, что J28 уже подчиняется командам getRange & setValue?Инкремент работает, если выполняется сам по себе, однако я бы хотел, чтобы он работал в составе этого сценария, чтобы все это можно было выполнить одним нажатием кнопки на моем листе, чтобы после нажатия кнопки все, что нужно очистить,очищается, а число в J28 увеличивается на 1.
J28 будет просто содержать число.В настоящее время это что-то вроде «181823». Я попытался поместить increment () в конец раздела переноса кода, так как я думал, что это может быть то, как код будет вести себя, говоря «как только это будет сделано, тогда увеличивайте»
Кто-нибудь может подсказать, можно ли заставить работать инкремент, как только в сценарии произошли другие события?Я мог бы поспать сегодня вечером так: -)