2016-03-08 62 views
0

我有三个依赖下拉工作,第四是失败,功能限制单元格列表上的范围错误;下面的例子。从挑选列表中选出前三项工作和变化,我的第四项,最后一项选择不会将数据限制在先前的选择中。下拉相关选择列表

function restrictCellToList(cellString, list) { 
var cell = SpreadsheetApp.getActiveSpreadsheet().getRange(cellString); 
var rule = SpreadsheetApp.newDataValidation().requireValueInList(list,  true).build(); 
cell.setDataValidation(rule); 
cell.setValue(list[0]); 

}

function initializeTrims() { 
var selectedCell = SpreadsheetApp.getActiveRange(); 
var selectedMake = selectedCell.getValue(); 
var selectedModel = selectedCell.getValue(); 
var selectedYear = selectedCell.getValue(); 
var selectedTrim = selectedCell.getValue(); 

var cars_raw = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("cars_raw"); 
Logger.log("You have selected %s", selectedYear); 

var trims = []; 
var carData = getCarData(); 
for (var i = 0; i < carData.length; i++) { 
    var row = carData[i]; 
    var make = row[0]; 
    var model = row[1]; 
    var year = row[2]; 
    var trim = row[3]; 
    if (year == "") { 
    continue; 
    } 
    if (year == selectedYear && trims.indexOf(trim) == -1) { 
    trims.push(trim); 
    } 
} 

restrictCellToList("D2", trims); 

Logger.log("Trims: %s", trims); 

}

+0

变种细胞= SpreadsheetApp.getActiveSpreadsheet()getRange(cellstring)。 //这个工作三次,但第四次失败,我的最后一个选择列表不更新RANGE NOT FOUND –

回答

0
function initializeTrims() { 
var selectedCell = SpreadsheetApp.getActiveRange(); 
var selectedMake = selectedCell.getValue(); 
var selectedModel = selectedCell.getValue(); 
var selectedYear = selectedCell.getValue(); 
var selectedTrim = selectedCell.getValue(); 
// this line was failing because the variables where looping   indefinitely I fixed it by changing to get range 

var selectedCell = SpreadsheetApp.getActiveRange(); 
    var selectedMake = ss.getRange(2, 1).getValue(); 
    var selectedModel = ss.getRange(2, 2).getValue(); 
    var selectedYear = ss.getRange(2, 3).getValue(); 
    var cars_raw =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("cars_raw");