2013-11-09 2 views
0

Google 스프레드 시트에서 스크립팅을 시작하려고합니다.Google 스프레드 시트가 다른 셀에 일부 값을 저장합니다.

어떻게 값을 셀에 저장합니까? setValues를 사용하려고하는데 권한이 없습니다. 나는이 기능을 가진 셀에 입력 된 모든 이름을 추적 할 수있는 보호 된 셀 범위를 원했습니다. 아래 스크립트는 하나의 이름 만 테스트로 저장하지만 작동하지 않습니다. 그래서 셀 A1에

function storeNames(name) { 

    var sheet = SpreadsheetApp.getActiveSheet(); 
    var storeRange = sheet.getRange(6,2); 
    storeRange.setValues([[name]]); 
    return "Hello " + name; 
} 

는 I 함수 = storeNames (B1)을 설정

I은 ​​B1에 이름을 입력하고, 다른 셀에 입력 한 이름을 저장할 수 없기 때문에 A1 오류를 범

- 입력 된 이름의 목록은 어떻게 보관합니까? 누구든지 이것을 디버깅하는 방법에 대한 조언을 얻었습니다. 모든 일반적인 자바 스크립트 도구는 작동하지 않으며 스프레드 시트에서 실행되는 스크립트에는 스크립트 편집기 로그가 작동하지 않으므로 시각 장애인입니다.

+0

당신은 강력한있는 소위 사용자 정의 함수를 사용하지만 일부 제한이 있습니다 같은 : '사용자 정의 함수는 값을 반환하지만 외부 값을 설정할 수 없습니다 그들이 속한 세포. 자세한 내용은 설명서의 다음 섹션을 참조하십시오. [스프레드 시트의 사용자 정의 기능] (https://developers.google.com/apps-script/execution_custom_functions) – wchiquito

+0

감사합니다. 그것은. 내가 얻지 못하는 것은 사용할 수없는 방법을 제공하는 이유입니다. 스프레드 시트에 값을 설정하는 방법이 있습니다. 그렇게 할 수있는 기능이 있습니다. – Hippyjim

+0

실제로이 메서드는 다른 컨텍스트에서 사용되지만 특히 사용자 지정 함수에서는 사용할 수 없습니다. – wchiquito

답변

1

간단한 예는 같은 것입니다 :

/* CODE FOR DEMONSTRATION PURPOSES */ 
function onEdit(e) { 
    var range = e.range, sheet = range.getSheet(); 
    if (sheet.getName() === 'Sheet1' && range.getColumn() === 2) 
    sheet.getRange(range.getRow(), 1).setValue(e.value); 
} 
+0

위대한 덕분에 지금은 이해합니다. – Hippyjim

관련 문제