작성
·
594
0
답변 1
0
안녕하세요.
현재 작성하신 코드 확인 한 결과로는 아래 setValidation 함수 부문에서 아래가 누락이 되어 onEdit이 참조해야 되는데 실행 이 되지 않는 것으로 보입니다. ^^
cell.setDataValidation(rule)
아래와 같이 원본 코드를 보내드립니다. 비교해 보시면 차이점을 알 수 있을 것입니다.
let ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('master');
let ref = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ref')
let options = ref.getRange(2, 1, ref.getLastRow()-1, 2).getValues()
function onEdit(e) {
const activerange = e.range;
const row = activerange.getRow()
const col = activerange.getColumn()
const val = activerange.getValue()
if(col === 1) {
const filteredoptions = options.filter(r => r[0] === val)
const listofName = filteredoptions.map(r => r[1])
// console.log(listofName)
const cell = ws.getRange(row, 2)
setValidation(listofName, cell)
}
if(col === 3) {
ws.getRange(row,4).setValue(new Date())
}
}
function setValidation(list,cell) {
const ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('master');
const rule = SpreadsheetApp.newDataValidation().requireValueInList(list).build()
cell.setDataValidation(rule)
}