본문 바로가기
프로그래밍/프로젝트

[Apps script] 문자보내는 당일일자 자동입력

by 숙님 2024. 10. 30.
728x90

[코드]

function updateDateOnEdit(e) {
  var sheet = e.source.getActiveSheet();
  
  // '시트1' 시트에서만 동작하도록 설정
  if (sheet.getName() === '시트1') {
    var range = e.range;
    var startRow = range.getRow();
    var endRow = startRow + range.getNumRows() - 1;
    var col = range.getColumn();
    
    // A열부터 P열에 수정이 발생할 경우
    if (col >= 1 && col <= 16) {
      // 오늘 날짜를 YYYY.MM.DD 형식으로 생성
      var today = new Date();
      var formattedDate = today.getFullYear() + '.' + 
                          String(today.getMonth() + 1).padStart(2, '0') + '.' + 
                          String(today.getDate()).padStart(2, '0');

      // Q열에 입력할 값을 저장할 배열 생성
      var dateValues = [];

      // 각 행을 검사하여 A~P열에 데이터가 있는지 확인
      for (var row = startRow; row <= endRow; row++) {
        var dataRow = sheet.getRange(row, 1, 1, 16).getValues()[0];
        
        if (dataRow.every(value => value === '')) {
          dateValues.push(['']); // A~P열이 비어있으면 Q열도 비우기
        } else {
          dateValues.push([formattedDate]); // A~P열에 데이터가 있으면 Q열에 날짜 입력
        }
      }

      // 한 번에 Q열에 날짜 입력 또는 삭제
      sheet.getRange(startRow, 17, dateValues.length, 1).setValues(dateValues);
    }
  }
}

 

 

[상황]

 

[도입 이유]

Description
1 배송지연일자 업데이트일이 언제인지 확인 필요 
-> 기존에는 수동으로 진행했으나 데이터가 업데이트되면 자동으로 진행 될 수 있도록 코드 작성 
2 ‘A~P’열의 데이터를 업데이트하면 
자동으로 
해당 작업 일자로 Q열 업데이트 진행 

 

댓글