2017-12-16 5 views
0

그래서 스크립트와 관련해서는 꽤 새로운 스크립트입니다. 과거에는 스크립트를 작게 만들 수 있었지만 분리 된 이벤트였으며 어쨌든 대부분 복사/붙여 넣기 작업이었습니다. 나는 Google 시트에서 일하고 있습니다. 여기에 내가 이루고자하는 바가있다 :Onedit 스크립트가 실행되지 않습니다.

시트를 단일 셀의 내용에 따라 숨기기/보이기 C3 싶다. this post을 기반으로 작업해야하는 스크립트를 찾을 수 있었지만 스크립트가 무엇을해도 내 시트의 변경 내용에 영향을 미치지 않습니다. 아래는 스크립트의 수정 된 버전입니다. 가장 큰 차이점은 Omar는 3 개의 개별보기를 원했지만 한 달에 하나씩, 모두를 표시하는 13 개를 원했습니다. 나는 공백을 위해 3 가지 경우를 포함 할 것이다.

function onEdit(e) { 

var sheet = e.source.getActiveSheet(); 
if (e.range.getA1Notation() !== 'C3' || sheet.getName() !== 'Overview') return; 
switch (e.value) { 
case 'All': 
    sheet.showColumns(1, sheet.getMaxColumns()-1) 
    break; 
case 'January': 
    sheet.showColumns(1, 2, 3, 4, 5, 26, 27) 
    sheet.hideColumns(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24) 
    break; 
case 'February': 
    sheet.showColumns(1, 2, 3, 4, 5, 6, 7) 
    sheet.hideColumns(8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27) 
    break; 
} 
} 

필자는 스크립트가 작동해야한다고 생각하며 아마도 약간의 구현 단계를 놓쳤습니다. 어떤 도움이 필요합니까?

답변

0

짧은 대답

은 onEdit (e)는 그 실행되지 않습니다 나타납니다하지만 일어나고있는 것은 오류가 있다는 것입니다.

설명

코드 사용의 실행이 중단되도록 showColumns 및 hideColumns 지원되지 않는 구문.

showColumns의 구문은 showColumns(columnIndex) 또는 showColumns(columnIndex, numColumns)입니다. hideColumns의 구문은 비슷합니다. 자세한 내용과 예는 https://developers.google.com/apps-script/reference/spreadsheet/sheet

How can I test a trigger function in GAS?에서 트리거 기능을 디버깅하는 방법을 참조하십시오.

Cooper가 his answer에 대해 언급 한 바에 따르면 달성하려는 항목과 유사한 작업을 수행하는 코드를 게시했으며 간단한 트리거의 제한 사항에 대해 경고합니다. 행/열 숨기기/표시가 느리고 간단한 트리거의 실행 시간이 30 초로 제한됩니다. 이 한계를 극복하는 방법은 설치 가능한 트리거를 사용하는 것이지만 보조 기능 및 설치 가능한 트리거를 사용하지 않고도 해결할 수있을만큼 간단합니다.

다음은 January의 경우 변경 사항입니다.

case 'January': 
    sheet.showColumns(1, 5); // show columns from column A to column E 
    sheet.showColumns(26, 2); // show columns from column Z to column AA 
    sheet.hideColumns(6, 19); // hide columns from column F to column X 
    break; 

2 월 사례를 직접 알아 보겠습니다.

+0

귀하의 의견을 이해하지만 문제를 해결하기 위해 무엇을해야할지 모르겠습니다. 원하는 결과를 얻기 위해 무엇을 바꾸겠습니까? –

+0

나는 그게 무슨 뜻인지 모르겠다. 내가 무지하다는 사실을 알게되면 미안해. 왜냐하면 나 때문이야. 올바른 구문이 무엇인지 예를 들어 줄 수 있다면 나머지 부분을 함께 넣을 수 있습니다. –

+0

예 제공 한 링크의 정보를 읽었으므로 바꿀 필요가있는 정보를 모을 수 없었습니다. 따라서 예를 묻습니다. 나는 이런 종류의 일에 대해 경험이 없기 때문에 나는 게으르지 않고 있다고 약속한다. 나는 진정으로 당신이주고 자하는 도움을 이해하지 못한다. –

0

나는 이것을 최근에 비슷한 것으로했는데, here을 살펴볼 수 있습니다. 또한 많은 열을 숨기려면 시간이 걸릴 수 있으므로 restrictions을 알고 있어야합니다.

function onEdit(e) { 

var sheet = e.source.getActiveSheet(); 
if (e.range.getA1Notation() !== 'C3' || sheet.getName() !== 'Overview') return; 
switch (e.value) { 
case 'All': 
    sheet.showColumns(1, sheet.getLastColumn()-1); 
    break; 
case 'January': 
    //refer to my link above for creating a function like this 
    break; 
case 'February': 
    //refer to link again 
    break; 
} 
} 
+0

대부분의 열은 연속적이므로 OP 특정 사례에 대한 도우미 함수를 만드는 데 필요한 것보다 많은 작업이 필요할 수 있습니다 (스크립트에는 두 가지 경우만 포함됨). 숨길 열은 연속적이지 않습니다. –

+0

답장을 보내 주셔서 감사합니다. 나는 루벤스에게 한 것과 똑같은 말을해야만한다. 다른 포스트에서 LJW에 대해 추천 한 스크립트를 자세히 살펴보면 필자는 필자가 스크립트에 무엇을 넣어야하는지 정확히 알지 못한다. 거기에는 몇 가지 다른 요소가 있습니다. 1 월 사건에 대한 귀하의 견해를 보여 줄 수 있습니까? 내 스크립트를 수정하는 데 충분한 정보를 줄 것이라고 생각합니다. 다시 한 번 고마움을 드려서 죄송합니다. –

관련 문제