Запустить скрипт в зависимости от выбранной ячейки в выпадающем списке - PullRequest
0 голосов
/ 26 апреля 2019

Так что это может быть очень легко, но я впервые использую javascript в листах Google, и я уже застрял. Я сделал простой счетчик, добавляя +1 каждый раз, когда вы нажимаете кнопку. Проблема в том, что id нравится менять ячейку, к которой добавляется +1, с раскрывающимся списком на моем листе. Это код моего счетчика:

function Cell1 (Cellname, increase){
var range = SpreadsheetApp.getActiveSheet().getRange(Cellname);
 var toAdd = -1;
if (increase){
toAdd = 1;
 }
range.setValue(range.getValue() + toAdd);
}
function Seminareinladung() {
Cell1("E5", true);
}

Там, где сейчас написано "E5", мне нужно знать, как выбрать источник выбора из моего выпадающего списка. EG:

City1  =  4
City2  =  4
City3  =  5
City4  =  9

Когда я нажимаю на мою кнопку, он должен запустить скрипт в ячейке рядом с выбранной в раскрывающемся списке. Поэтому, когда City1 выбран в раскрывающемся списке в E5, он должен добавить +1, делая его City1 = 5 Извините, если мое описание немного сбивает с толку ... Заранее спасибо за помощь

1 Ответ

0 голосов
/ 27 апреля 2019

Увеличение или уменьшение ячеек, выбранных с помощью проверки выпадающих данных

Я не уверен, что вы спрашиваете полностью, но я думаю, что этот пример поможет вам, вот он.

Это код для моего примера, и у меня есть изображения для подражания:

function incrementCity (){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var selected=sh.getRange(2,3).getValue();//in my example
  switch(selected) {
    case 'City1':
      sh.getRange(2,2).setValue(sh.getRange(2,2).getValue() + 1);
      break;
    case 'City2':
      sh.getRange(3,2).setValue(sh.getRange(3,2).getValue() + 1);
      break;
    case 'City3':
      sh.getRange(4,2).setValue(sh.getRange(4,2).getValue() + 1);
      break;
    case 'City4':
      sh.getRange(5,2).setValue(sh.getRange(5,2).getValue() + 1);
      break;
    default:
      break;
  }
}

function decrementCity (){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var selected=sh.getRange(2,3).getValue();//in my example
  switch(selected) {
    case 'City1':
      sh.getRange(2,2).setValue(sh.getRange(2,2).getValue() - 1);
      break;
    case 'City2':
      sh.getRange(3,2).setValue(sh.getRange(3,2).getValue() - 1);
      break;
    case 'City3':
      sh.getRange(4,2).setValue(sh.getRange(4,2).getValue() - 1);
      break;
    case 'City4':
      sh.getRange(5,2).setValue(sh.getRange(5,2).getValue() - 1);
      break;
    default:
      break;
  }
}

На рисунке ниже показано, как настроить проверку данных и как кнопки увеличения и уменьшения связаны с двумя функциями. Таким образом, вы можете выбрать, какой город с ячейкой проверки данных в C2, а затем нажать кнопку увеличения или уменьшения, и ячейка рядом с выбранным городом будет увеличиваться или уменьшаться.

enter image description here

Это просто, как настроить проверку данных.

enter image description here

Надеюсь, это поможет. Дайте мне знать, если эскиз читабелен и понятен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...