2017-03-07 1 views
0

커서를 스프레드 시트의 다른 위치로 옮기는 간단한 기능이 있습니다. 때로는이 코드가 실행되는 데 30 초가 걸리고 때로는 실행하는 데 1 초가 걸리기 때문에 쓸모이게됩니다. 실행 시간이 더 일관성을 갖도록 코드를 다시 코딩 할 수있는 방법이 있습니까?Google App Script : 광범위한 실행 시간

function go_to(){ 
var ss = SpreadsheetApp.getActiveSpreadsheet() 
var active = SpreadsheetApp.getActiveRange().getValue() 
var sheet = ss.getSheetByName("Records") 
var range = sheet.getRange("B"+(active+2)) 
sheet.setActiveRange(range) 
} 
+0

변수'active'의 예상 값은 얼마입니까? 코드가하는 일이나 예상되는 최종 결과가 무엇인지 설명하지 않았습니다. Logger.log() 문을 두 개 추가하여 코드가하는 작업을 확인한 다음 예상치 못한 결과가 발생하는지 확인할 수 있습니다. 단일 셀에서 가치를 얻으려고합니까? 그렇다면'SpreadsheetApp.getActiveRange(). getCell (1, 1) .getValue()' –

답변

1

이것은 시간 성능면에서 꽤 일관된 것 같습니다. 어떻게 당신의 설정에서 작동합니까?

function go_to() 
{ 
    var sht = SpreadsheetApp.getActiveSheet(); 
    var rsht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Records'); 
    rsht.setActiveRange(rsht.getRange("B" + Number(sht.getActiveRange().getValue() + 2))); 
} 
+0

@ Cooper를 사용합니다. 내가 왜 당신의 코드에'if' 문이 있는지 확실하지 않습니다. 모든 것은 getValue()를 사용하여 활성 셀에서 '10'을 선택하고 커서를'Records! B10'로 이동하는 것입니다. – jason

+0

오, 내가 요구 사항을 잘못 읽었습니다. 모든 시트에서이 작업을 수행하려고했지만 "레코드"라는 시트에서 새 위치로 이동하십시오. 나는 그것을 살펴보고 그것이 게임을 어떻게 바꾸는 지 볼 것입니다. 나중에 다시 만나 ... – Cooper

+0

나는 조금 더 일관성없는 결과를 얻고 있습니다. 페이지 변경이 예측 가능성이 다소 떨어지는 것 같습니다. 나는 jstree 디렉토리 트리를 만드는 루틴을 가지고 있으며 언젠가는 30 초 그리고 때로는 더 오래 실행될 것입니다. 나는 그 배경의 세부 사항을 모른다. 그래서 우리는 사용자가 움직일 생각을하는 것을 알 수 있도록 회전 바퀴를 놓을 필요가 있습니다. – Cooper

관련 문제