달나라 노트

Google Apps Script : getNextDataRange (다음 데이터가 있는 셀까지 선택하기) 본문

Google Apps Script

Google Apps Script : getNextDataRange (다음 데이터가 있는 셀까지 선택하기)

CosmosProject 2021. 8. 6. 13:16
728x90
반응형

 

 

 

엑셀에서 Ctrl + Shift + 방향키를 누르면

현재 셀에서 다음 데이터가 있는 모든 셀이 선택됩니다.

 

예를들어 위와같이 B2를 클릭한 후 Ctrl + Shift + 우측 방향키를 누르면?

 

 

 

이처럼 다음 데이터가 있는 모든 셀이 선택되죠.

 

 

 

 

 

이것을 코드로 구현해봅시다.

 

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet1'));
  spreadsheet.getRange('B2').activate();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
}

- var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

active spreadsheet 객체를 얻어옵니다.

 

 

- spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet1'));

Sheet1에 있는 데이터에서 테스트를 할 것이므로 Sheet1을 activate합니다.

 

 

- spreadsheet.getRange('B5').activate();

B5 셀을 activate합니다.

 

 

- spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();

getSelection() = Selection (범위 selection을 의미한다고 생각)을 얻어옵니다.

getNextDataRange(SpreadsheetApp.Direction.NEXT) = getNextDataRange는 Ctrl + Shift + 방향키처럼 다음 방향에 있는 가장 마지막 데이터가 있는 Cell까지 모두 선택해줍니다.

여기서 Next는 우측으로 이동하라는 의미입니다.

즉, 위 코드는 Ctrl + Shift + 우측방향키와 동일한 효과를 가지는것이죠.

 

 

 

 

 

그 결과는 위와 같습니다.

정말 Ctrl + Shift + 우측방향키와 동일하죠.

 

 

 

 

 

 

 

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet1'));
  spreadsheet.getRange('B2').activate();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
}

위처럼 getNextDataRange에서 Direction을 NEXT로 사용한 후 DOWN으로 한번 더 사용하면

Ctrl + Shift + 우측방향키를 한 후

Ctrl + Shift + 아래방향키를 한 것과 동일합니다.

 

 

 

 

그 결과는 위와 같습니다.

 

 

 

 

 

 

 

728x90
반응형
Comments