Вот фрагмент кода, который будет работать для изменения формата столбцов на основе ввода флажка:
if (e.range.getA1Notation() == 'C19')
{
if (e.value == 'TRUE') {
SpreadsheetApp.getActiveSheet().getRange("K2:K59").setNumberFormat("000.00lb");
}
else
{
SpreadsheetApp.getActiveSheet().getRange("K2:K59").setNumberFormat("000.00oz");
}
}
if (e.range.getA1Notation() == 'C18'){
if (e.value == 'TRUE') {
SpreadsheetApp.getActiveSheet().getRange("L2:L59").setNumberFormat("##0.00gr");
}
else
{
SpreadsheetApp.getActiveSheet().getRange("L2:L59").setNumberFormat('##0.00"%"');
}
}
Это позволяет изменить формат столбцов K
и L
.Это только для иллюстративных целей, и вам также необходимо пересчитать метрические / имперские веса и т. Д.
Основная проблема, с которой я столкнулся, состоит в том, что (e.value == true)
должно быть (e.value == 'TRUE')
.
Также выможет потребоваться использовать SpreadsheetApp.getActiveSheet()
вместо SpreadsheetApp.getActiveSpreadSheet()
.
ПРИМЕЧАНИЕ: Экспериментально я обнаружил, что значением, возвращаемым флажком, являются строки 'TRUE'
и 'FALSE'
а не логическое значение.Так что if(e.value)
не работает для проверки логического true
и т. Д., Как вы ожидаете.Я открыт для исправления вышестоящими властями по этому вопросу, но форма (e.value == 'TRUE')
была единственной, которую я мог заставить работать.