유일한 코드는 초기 값 저장하는으로 onOpen 출구를 사용하는 것입니다. 초기 값은 여러 가지 방법으로 저장 될 수 있습니다. 거기에 은 "사용자 속성"입니다. 나는 그들이 어떻게 일하는지 아직 모른다. 나는 이것에 초보적이다.
는 또한 "으로 onOpen"출구에서 값을 저장하기 위해 "숨겨진"시트를 사용할 수 있습니다. 내가 알지 못하는 다른 방법이있을 수 있습니다. 원래 값을 저장할 하는
이 문제는 세포의 증가와 함께 더 어려워진다.
그런데 "ONOpen"루틴이 스프레드 시트가 열릴 때 발생한다는 점을 이해해야합니다. 따라서 최종 사용자도 액세스 할 수 있으며 은 onOpen 핸들러가 실행을 완료하기 전에 셀 값을 변경할 수 있습니다. 은 초기 값을 모두 포착 할 수 없습니다.
마지막으로 알아야 할 것이 하나 있습니다. UNDO 또는 REDO 이벤트가 발생할 때 onEdit 트리거가 시작되지 않습니다. 세포의 내용은 변할 수 있고 그것을 알 수 없습니다.
나는 검증 루틴이 어떻게 작동하는지 알지 못합니다. 루틴이 값을 거부하면 스프레드 시트가 원래 값으로 복원됩니까? 그렇다면 onOpen 문제가 발생할 수 있습니다. 사용자에게 값이 유효하지 않다고 알려주면 많은 도움이되지 않습니다. 작동하지만 매우 복잡 할 수 있습니다 방법에 대한
정말 라운드 스프레드 시트 닫기 전에 이미지 를 저장하는 것입니다. 모든 "애프터"이미지를 두 번째 스프레드 시트에 게시합니다. 그런 다음 onEdit 핸들러에서 다른 스프레드 시트의 해당 셀을 봅니다. 그런 다음 이전 이미지를 복원하거나 새 이미지를 계속 진행할 수 있습니다.
마지막으로 두 번째 스프레드 시트 대신 데이터 표를 사용하는 것이 좋습니다.
저는이 모든 개념에 대해 배우기 때문에 구현 방법을 묻지 마십시오. 나는 그것이 가능할지도 모른다는 것을 이해한다. 코딩 및 지원을 위해 이 최선의 선택이 아닐 수도 있습니다. 그러나 현재 스크립트 서비스는 이미지 액세스 전에 을 제공하지 않기 때문에 내가 할 수있는 최선의 방법입니다. 이 Google 인터페이스는 클라이언트 - 서버 응용 프로그램이라는 것을 이해해야합니다. 스크립트는 서버에서 실행됩니다. 데이터 변경은 "클라이언트"(최종 사용자) 브라우저에서 발생합니다.
마지막주의 사항 : onEdit 트리거는 셀에 대한 UNDO 또는 REDO 변경에 대해 실행되지 않습니다. 그래서 셀이 변경 될 수 있으며 스크립트는이를 인식하지 못합니다.
나는 ScriptDB를 사용하여이 작업을 수행 할 수있는 또 다른 방법으로 this post에 응답했습니다. – tomrobpowell