1
Google 스프레드 시트에서 일부 값을 변경하면 자동으로 이메일을 보내도록 앱 스크립트에 다음 코드를 생성했습니다.커서가 자동으로 Google 스프레드 시트에서 앱 스크립트와 함께 각 편집 후
그런 다음 "현재 프로젝트의 트리거"를 변경하여 Google 스프레드 시트에 내 스크립트를 연결했습니다. 예컨대 :
코드는 잘을하고있다. 유일한 문제는 사용자가 Google 스프레드 시트의 모든 셀 (예 : B1, B12, C12 등)에 새 값을 삽입/편집하면 스크립트가 실행되고 커서가 항상 자동으로 셀 A1, 성가신입니다.
내가 틀릴 수도있는 최선의 추측은 매번 앱 스크립트 코드를 실행하면서 "신호"로 A1 셀로 돌아 간다는 것입니다.
이 자동 커서 이동 기능을 중지하려면 할 수있는 것이 있습니까? "현재 프로젝트의 방아쇠"를 변경해야합니까?
function PODTool() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[0]);
var sheet = spreadsheet.getActiveSheet();
var lastRow = sheet.getLastRow();
var startRow = 2;
var range = sheet.getRange(2,7,lastRow-startRow+1,1);
var numRows = range.getNumRows();
var LinksToPODForm = range.getValues();
var rangeColumnReadyToSendEmail =sheet.getRange(2,9,lastRow-startRow+1,1);
var sendEmailOrNot = rangeColumnReadyToSendEmail.getValues();
var warning_count = 0;
var msg = "";
// Loop over the values
for (var i = 0; i <= numRows - 1; i++) {
var EachLinkValue = LinksToPODForm[i][0];
if (EachSendEmailOrNotValue=="yes" && sheet.getRange(i+2,10).getValue()=='Email not Sent' &&EachEmailRecipient=="Someone"){
var BillingOfLadingShowingInEmailNotification = Billing_of_lading_number[i][0];
msg = msg +"Requester: "+EachEmailRecipient+"
warning_count++;
var subject ="Billing of Lading: "+BillingOfLadingShowingInEmailNotification;
sheet.getRange(i+2,10).setValue('Sent');
var recipient = "[email protected]";
}
if(warning_count) {
MailApp.sendEmail(recipient, subject,msg)
}
};
Thx()`VAR 시트 = spreadsheet.getActiveSheet :
var sheet = spreadsheet.getActiveSheet();
에 :
var sheet = spreadsheet.getSheets()[0];
및이 줄을 삭제합니다
내가 변경할 것을 ; 'var sheet = spreadsheet.getSheets() [0];'이 줄을 지우고 :'SpreadsheetApp.setActiveSheet (spreadsheet.getSheets() [0]);'그것을 시도하고 commen하십시오. 다시. –
그것은 매력처럼 작동합니다! 그냥 뭔가 "setActiveSheet"건 잘못 생각해? 고마워!!! –
답변으로 내 의견을 추가했습니다. 제 생각에 "setActiveSheet"가 활성 셀을 A1으로 옮기는 것 같습니다 –