
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
함수 확인 한번 부탁드립니다
코드 스니펫 그대로 복사해서 썼는데 왜 실행이 안될까요?
보고 계신 화면 전체를

캡처해 주시면, 튜터님들이 빠르게 상황을 이해할 수 있어요.
자동화를 누르고 일정 예약하기를 클릭하니까 스크립트 함수를 찾을 수 없다고 나옵니다
// 구글 폼을 제출하면 추적하여 이메일 알림 발송하는 함수
function onFormSubmit(e) {
// 구글 폼의 응답을 찾아내서 변수로 지정
let formResponse = e.values;
// console.log(formResponse);
let timeStamp = formResponse[0];
let email = formResponse[1];
let name = formResponse[2];
let birth = formResponse[3];
let phone = formResponse[4];
let job = formResponse[5];
let requestDate = formResponse[6];
let requestTime = formResponse[7];
// 메일 발송에 필요한 정보 찾기
let myMail = '내 이메일 주소';
let mailTitle = '[면접 일정 확인 요청] 지원자가 구글 폼을 작성했어요!';
// HTML 메일 형태로 데이터 담기
let mailBody = `<div>
<h3>${mailTitle}</h3>
<p>작성시간 : ${timeStamp}</p>
<p>성함 : ${name}</p>
<p>생년월일 : ${birth}</p>
<p>희망직무 : ${job}</p>
<p>이메일 : ${email}</p>
<p>전화번호 : ${phone}</p>
<p>면접 희망일자 : ${requestDate}</p>
<p>면접 희망시각 : ${requestTime}</p>
<a href="내 구글 시트 URL">면접 신청 시트 확인하기</a>
</div>`;
// 메일로 데이터 전송
sendEmail(myMail, mailTitle, mailBody);
}
// 지메일을 보내는 함수
function sendEmail(recipient, subject, body) {
MailApp.sendEmail({
to: recipient,
subject: subject,
htmlBody: body
});
}
// 구글 시트가 열리면 실행되는 함수
function onOpen() {
let ui = SpreadsheetApp.getUi();
ui.createMenu('자동화')
.addItem('일정 예약하기', 'createCalendarSchedule')
.addToUi();
}
// 구글 일정 예약하기 버튼을 누르면 실행되는 함수
function createCalendarSchedule() {
let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
let sheet = spreadsheet.getActiveSheet();
let startRow = 2;
let numRows = sheet.getLastRow() - 1;
let dataRange = sheet.getRange(startRow, 1, numRows, 10);
let data = dataRange.getValues();
console.log(data);
for (let i = 0; i < data.length; i++) {
let row = data[i];
// console.log(row);
let timeStamp = row[0];
let email = row[1];
let name = row[2];
let birth = row[3];
let phone = row[4];
let job = row[5];
let requestDate = row[6];
let requestTime = row[7];
let interviewDate = row[8];
let isReserved = row[9];
if (interviewDate === '') {
console.log('일정 예약 실패 : 면접 일정 데이터가 비어있습니다');
continue;
}
if (isReserved === '완료') {
console.log('일정 예약 실패 : 이미 예약이 완료된 일정입니다');
continue;
}
interviewDate = new Date(interviewDate);
// 날짜와 시간을 문자열로 변환하여 원하는 형식으로 출력
let formattedDate = Utilities.formatDate(interviewDate, Session.getScriptTimeZone(), 'yyyy/MM/dd HH:mm');
// HTML 메일 형태로 데이터 담기
let office = '서울특별시 르탄대로 11길 8';
let mailTitle = '안녕하세요. [대박기획]입니다. 제출해주신 면접 일정이 확정되어 공유드립니다.';
let admin = '김대박';
let mailBody = `<div>
<h3>${mailTitle}</h3>
<p>성함 : ${name}</p>
<p>희망직무 : ${job}</p>
<p>면접일자 : ${formattedDate}</p>
<p>면접장소 : ${office}</p>
<p>인사 담당자 ${admin} 드림</p>
</div>`
// 메일로 고객에게 데이터 전송
sendEmail(email, '[대박기획] 확정된 면접 일정 공유드립니다.', mailBody);
}
