시트의 한 열을 반복하는 스크립트를 작성하고 셀 값을 다른 셀과 비교 한 다음 동일한 경우 배경색을 변경하려고합니다.Google 스프레드 시트의 셀 참조가 범위를 벗어났습니다.
저는 JS와 Google 스크립팅에 새로운 것이므로 항상 "셀 참조 범위를 벗어남"오류가 발생하므로 for 루프에 문제가 있습니다. 지금까지 내 코드는 다음과 같습니다.
function onOpen()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Exibicao");
var range = sheet.getDataRange();
var rows = range.getNumRows();
for(var i = 0; i <= rows; i++)
{
var cell = range.getCell(i, 13);
var option1 = cell.offset(0, -3);
var option2 = cell.offset(0, -2);
var option3 = cell.offset(0, -1);
if(option1.getValue() == cell.getValue()){
option1.setBackground("#b6d7a8");
}else if(option2.getValue() == cell.getValue()){
option2.setBackground("#b6d7a8");
}else if(option3.getValue() == cell.getValue()){
option3.setBackground("#b6d7a8");
}
}
}
글쎄,'getCell()'의 맥락에서, 인자는 하나의 것을 기반으로한다. 나는 에러가 발생한 곳이라고 생각한다. 따라서 for (var i = 1; i <= rows; i ++)를 사용해야합니다. 더 큰 그림에서 (Bryan이 동의 할 것이라고 확신 하긴하지만) 루프 내에서 이러한 모든 작업을 수행하는 것은 실제로 그것에 대한 올바른 방법이 아닙니다. – AdamL
죄송합니다, 오류가'var cell = range.getCell (i, 13); '에 있습니다. 그러나 AdamL이 말했듯이'i = 1'로 변경하면 효과가있었습니다. 루프 내부로 들어가는 것에 관해서는 어떤 제안이 있습니까? – Jorgel
예, 제안 사항에 추가되었습니다. 그것이 의미가 있는지보십시오. 확실히 더 효율적으로 아담이 벗어난 것처럼. 스프레드 시트의 새로운 기본 제공 조건부 서식은 지금이 작업을 수행 할 수 있음을 알고 있습니다. –