У меня есть пункт меню для «очистки листа». То, что я пытаюсь выполнить, это всплывающее окно с подсказкой для текста, где вы должны ввести диапазон, т. Е. «A4: P6», и сценарий затем очистит ячейки для любых значений.а затем вставьте обратно любые формулы в этих ячейках.Я не смог найти никаких записей об этом и застрял с кодом в течение некоторого времени.
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Custom Menu')
.addItem('Clear Range', 'menuItem1')
.addSeparator()
.addSubMenu(ui.createMenu('Email')
.addItem('Second item', 'menuItem2'))
.addToUi();
}
function menuItem1() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
var mySheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = mySheet.getSheetByName('Pre op Board');
var ui = SpreadsheetApp.getUi();
var result = ui.prompt('What cell to start with?',
ui.ButtonSet.OK);
var result2 = ui.prompt('How many cells?', ui.ButtonSet.OK);
// Process the user's response.
var button = result.getSelectedButton();
var cell = result.getResponseText();
var button2 = result2.getSelectedButton();
var numCells = result2.getResponseText();
var cellRange = sheet.getRange(cell);
cellRange = cellRange.offset(numCells);
var values = cellRange.getValues();
var range = sheet.getRange(cell);
var formulas = range.getFormulas();
for (var i in formulas) {
for (var j in formulas[i]) {
Logger.log(formulas[i][j]);
sheet.getRange(cell).clearContent();
var cell = sheet.getRange(cell);
cell.setFormulas(formulas);
}
}}
function menuItem2() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.alert('You clicked the second menu item!');
}