2016-03-08 64 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");