문제

트럭 운전자와 픽업 번호를 추적하기 위해 도메인 내에서 사용중인 "라이브/실행"스프레드 시트로 단일 행의 데이터를 특정 이메일 주소로 보내는 방법을 찾으려고 노력했습니다. 시트에서 사용 가능한 Google Apps 스크립트 편집기를 사용 하여이 작은 코드를 함께 조각했습니다.

function sendEmail()
{
   var sheet = SpreadsheetApp.getActiveSheet();
   var activeRow = sheet.getActiveCell().getRow();
   var cellID = "H" + activeRow;    
   var dataRange = sheet.getRange(activeRow, 1, 1, 6);
   var EMAIL_SENT = "EMAIL_SENT";
   var data = dataRange.getValues();
   Logger.log(data[0][0]);

   var emailAddress = usercellnum@carrier.net;
   var message = data;
   var subject = "CG-PU#";
   var emailSent = sheet.getRange(cellID).getValue();

   if (emailSent != "EMAIL_SENT")
   {
     MailApp.sendEmail(emailAddress, subject, message);
     var cell = sheet.getRange(cellID);
     cell.setValue(EMAIL_SENT);
   }
  }
SpreadsheetApp.flush();  
}

내 스프레드 시트의 셀에서 기능을 호출 할 수있는 방법 =sendEmail() 그리고 그것은 활성 행에서만 정보를 보내고 해당 행을 다음과 같이 표시해야합니다. EMAIL_SENT 그래서 나는 실수로 다시는하지 않습니다.

스크립트는 내부 스크립트 편집기에서 실행하고 이메일 주소를 하드 코드하면 완벽하게 실행되지만 스프레드 시트 자체에서 실행하려고하면 메시지를 받고 있습니다.

오류 : SendEmail에 전화 할 수있는 권한이 없습니다 (Line 19, "CPS_SendEmail.gs"파일).

이것에 대한 모든 도움은 대단히 감사합니다! 내 사용자가 MS Excel 및 Outlook으로 돌아가는 것을 막는 데 도움이됩니다. 이 부분을 작동시킬 때, 사용자가 선택할 수있는 주소 목록 또는 사용자가 드라이버 주소를 기억하고 입력하지 않아도되는 다른 방법으로 기능을 표시 할 수 있다면 정말 원할 것입니다. 캐리어이지만, 나는 이것의 많은 부분이 예상대로 작동하도록하고 싶습니다.

스크립트는 사용자와 함께 Google 도메인에서만 실행할 수 있어야하며 처음 실행했을 때 권한 부여 프로세스를 거쳤지만 실제로는 그 부분을 이해하지 못했다고 확신했습니다.

그들은 현재 MS Excel/Outlook을 사용하고 있으며 연락처를 사용할 수있는 이메일에 행을 복사하여 붙여 넣습니다. Googles 연락처를 사용할 수없는 기능을 얻을 수 없다면, 컨택트가 바로 거기에있을 때 목록을 유지 해야하는 고통의 종류가있는 드라이버 시트를 만드는 것을 고려하고있었습니다. !

올바른 솔루션이 없습니다

다른 팁

읽으십시오 권한 및 사용자 정의 기능. 사용자 정의 기능 (스프레드 시트 기능에서 호출 된 스크립트)은 스프레드 시트의 모든 사용자에게 열려 있으므로 인증이 필요한 서비스를 사용할 수 없습니다. 그래서 당신은 하나에서 메일을 보낼 수없는 이유입니다.

이는 스크립트가 서비스에 액세스하도록 승인하는 프로세스와 다릅니다. 그것은 오류 메시지를 혼란스럽게 만들지 만 스크립트를 호출하는 방식에 관한 것이 었습니다.

그러나 사용자 정의 기능은 어쨌든 이러한 유형의 동작을 수행하는 나쁜 방법이기 때문에 스프레드 시트가 변경 될 때마다 함수가 다시 평가되기 때문에 원하는 것보다 더 많은 이메일을 보냅니다.

대신이 작업을위한 메뉴 항목을 작성하는 것이 좋습니다. (새 스프레드 시트 스크립트를 작성하는 경우 편집기에서 제공된 샘플 코드를 참조하십시오.) 워크 플로우는 커서를 처리하려는 행으로 이동 한 다음 메뉴를 사용하여 "Make It So"를 사용하여 스크립트를 호출하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top