Этот код работал, и хотя я не припомню, чтобы менял что-либо в структуре, он частично перестал работать. Когда я выбираю элемент в ячейке W4, он, по-видимому, дает мне только первый вариант из другого листа в столбце C, связанный с этим элементом, в то время как в раскрывающемся списке должно быть около 04 элементов. Я не могу найти недостаток:
function onEdit(){
var tabLists = "ArquivoItens";
var tabValidation = "EditarItem";
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var datass = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(tabLists);
var activeCell = ss.getActiveCell();
//It checks if the active cell is where the product name is
if(activeCell.getColumn() == 23 && activeCell.getRow() == 4 && ss.getSheetName() == tabValidation){
//if it is, it clears the Versão cell, so you can choose the ones related to the product of choice.
activeCell.offset(0, 6).clearContent().clearDataValidations();
//specifies the data range where the Product and the related field you want filtered is on
var makes = datass.getRange(2, 1, datass.getLastRow(), 3).getValues();
Logger.log(makes);
//this is what I need to study - map function
var searchArray = makes.map(function(e){return e[1];});
var makeIndex = searchArray.indexOf(activeCell.getValue());
Logger.log(searchArray);
//if anything on B (where desired column data is) is found related to A, where the product sits
if(makeIndex != -1){
//push found items to the datavalidation list
var validationRange = datass.getRange("C" + (2+makeIndex));
var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
activeCell.offset(0, 6).setDataValidation(validationRule);
}
}
}
Большое спасибо за помощь в создании нужных мне решений при изучении тонны на js.
Ура,