Составьте выпадающий список элементов в поле из столбца элементов в Google Sheets - PullRequest
0 голосов
/ 11 апреля 2020

Я хочу взять столбец элементов в Google Sheet и создать раскрывающийся список, который я могу выбрать в поле в другой части листа. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Вы можете создать раскрывающийся список в ячейке со значениями из другого диапазона на другом листе в той же электронной таблице.

Я даю код, который я использую.

Раскрывающийся список в создано в столбце R

    allottedsheet.appendRow([planvalues[0][0], '=VLOOKUP($A'+(allottedlastrow+1)+',PLAN!$A:B,2,0)', '=VLOOKUP($A'+(allottedlastrow+1)+',PLAN!$A:C,3,0)', "Full Set"     , '=VLOOKUP(A'+(allottedlastrow+j)+',PLAN!A:E,5,0)',  '=VLOOKUP(A'+(allottedlastrow+j)+',PLAN!A:F,6,0)' ,'=VLOOKUP(A'+(allottedlastrow+j)+',PLAN!A:G,7,0)' ,"", 1         ,'=I'+(allottedlastrow+j)+'*E'+ (allottedlastrow+j),'',       wt,      fablab,'=J'+(allottedlastrow+j)+'*M'+(allottedlastrow+j),"",        "",       "",   '=VLOOKUP($A'+(allottedlastrow+1)+',PLAN!$A:K,11,0)' ,"",  color,     "",     "", "",     "",    planvalues[0][3], "",                 "",         "",      "",  planvalues[0][45]  ] )  ;
    var cell = allottedsheet.getRange('R'+(allottedlastrow+1));
    var range = contractorssheet.getRange('A2:A32');
    var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
    cell.setDataValidation(rule);


На листе «Исполнитель» A2: A32 указаны допустимые значения. У него есть несколько пустых значений внизу. Если добавлен новый подрядчик, разрешите пользователю добавить его в нижней части диапазона.

Пустые значения не отображаются в раскрывающемся списке

0 голосов
/ 11 апреля 2020

Простая раскрывающаяся таблица

function createSpreadsheetDropDown(sheetname,range,list) {
  var range=range||'A1:A5';
  var list=list||[1,2,3,4,5];
  var sheetname=sheetname||'Sheet13';
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getSheetByName(sheetname);
  const rg=sh.getRange(range);
  var val=sh.getRange(range).getDataValidations();
  val.forEach(function(v,i){
    v=null;
  });
  const rule=SpreadsheetApp.newDataValidation().requireValueInList(list).build();
  rg.setDataValidation(rule);
}

Изображение:

enter image description here

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