목적
구글 스프레드시트의 스크립트 편집기를 사용하여, 사용자가 시트를 지정하고, 지정한 시트의 셀 또는 범위에 입력값을 적용하거나, 임의로 지정한 한 시트로부터 입력값을 받아 다른 시트에 입력값을 적용합니다.
포스팅에서 다루는 새로운 코드
예제 1) 스크립트로 시트를 지정하고 지정한 시트에 값을 입력하기
임의의 시트를 지정해서, 지정한 시트에 입력값을 입력해 보겠습니다.
예제의 스크립트는 "시트 3" 제목의 시트를 지정해서 이 시트의 1행 1열에 숫자 7을 입력하는 코드입니다.
function learnBasics3() {
var app = SpreadsheetApp;
var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
Logger.clear();
var targetSheet = app.getActiveSpreadsheet().getSheetByName("시트3");
targetSheet.getRange(1, 1).setValue(7);
}
JavaScript
복사
스크립트
스크립트 결과
[선택한 셀/범위에 데이터를 입력하기] 단원에서의 방법과는 큰 차이점이 있는데, 작성자가 [시트 3] 활성화 - [도구] - [스크립트 편집기] 로 접속하는 과정을 거치지 않고, 임의의 시트를 활성화한 상태에서 스크립트 실행만으로 지정한 시트의 셀에 데이터를 입력한 결과입니다.
예제 2) 첫 번째 지정한 시트 내 셀의 입력 값을 받아, 두 번째 지정한 시트 내 셀에 데이터 입력하기
임의의 시트의 셀에 입력된 입력값을 다른 시트의 임의의 셀에 입력해 보겠습니다.
예제의 스크립트는 "시트 3" 시트의 1행 1열 셀에 입력된 숫자 7을 "시트 2" 시트의 10행 1열 셀에 입력하는 코드입니다.
function learnBasics3() {
var app = SpreadsheetApp;
var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
Logger.clear();
var targetSheet = app.getActiveSpreadsheet().getSheetByName("시트3"); // "시트3" 이름으로 지정된 시트를 선택하는 함수를 변수 targetSheet 로 지정합니다.
targetSheet.getRange(1, 1).setValue(7); // "시트3" 내의 1행 1열 셀에 숫자값 7을 입력합니다.
var tempNumber = targetSheet.getRange(1, 1).getValue(); // "시트3" 에서 1행 1열에 해당하는 값을 받는 함수를 변수 tempNumber 로 지정합니다.
var secondSheet = app.getActiveSpreadsheet().getSheetByName("시트2"); // "시트2" 이름으로 지정된 시트를 선택하는 함수를 변수 secondSheet 로 지정합니다.
secondSheet.getRange(10, 1).setValue(tempNumber); // "시트2" 시트에서 A10 셀에 "시트3" 에서 1행 1열에 해당하는 값을 입력합니다.
}
JavaScript
복사
스크립트
스크립트 실행 전
스크립트 실행 후
시트 3에서 1행 1열에 입력되어 있던 숫자값 7이 시트 2에서 10행 1열에 해당하는 셀 A10 에 입력되었습니다.
< 번외 >
스크립트를 실행했을 때 기준, "시트 3" A1 셀의 입력값을 능동적으로 받아 "시트 2" A10 셀에 적용할 수 있는데, 아래와 같이 예제 2-1 코드를 수정해 보겠습니다.
function learnBasics3() {
var app = SpreadsheetApp;
var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
Logger.clear();
var targetSheet = app.getActiveSpreadsheet().getSheetByName("시트3");
// targetSheet.getRange(1, 1).setValue(7); // 이 코드를 삭제하거나 더블 슬래시('/')로 비활성화합니다.
var tempNumber = targetSheet.getRange(1, 1).getValue();
var secondSheet = app.getActiveSpreadsheet().getSheetByName("시트2");
secondSheet.getRange(10, 1).setValue(tempNumber);
}
JavaScript
복사
스크립트 (예제 2 코드 수정)
스크립트 실행 전 시트 3의 A1 셀에 "7" 대신 "시트3에서 가져옴" 을 입력한 상태.
스크립트 결과.