Quantcast
Channel: Hot Weekly Questions - Web Applications Stack Exchange
Viewing all articles
Browse latest Browse all 9782

How to correct script which get emails of users? [duplicate]

$
0
0

I try to get eMails of users which change any range in my Google Sheets.

I use this script below:

function onEdit(event) {  var as = event.source.getActiveSheet();//Текущийлист  var address = event.range.getA1Notation().toUpperCase();//Адресячейки  var row = event.range.getRow();      //Номерстроки  var col = event.range.getColumn();  //Номерстолбца  var newValue = event.value;            //Новоезначение  var oldValue = event.oldValue;        //Староезначение  var userEmail = event.user.getEmail();//Пользователь(работаеттолькопривручнуюназначенномтриггере)  let archiveSheetName = "reg";  let ss = SpreadsheetApp.getActiveSpreadsheet();  let archiveSheet = ss.getSheetByName(archiveSheetName) || ss.insertSheet(archiveSheetName);  archiveSheet.appendRow([new Date(), userEmail, as.getName(), address, oldValue, newValue]);};

But it works only when owner (me) change anythink in Google Sheets. When i test and change the user account (for example to xxxx@gmail.com), the script dont get this user eMail (xxxx@gmail.com). But i give for this user (xxxx@gmail.com) all permission in Google Shet.

I know, i can use Trigger by other account (xxxx@gmail.com) and it really work. But script give me double value. (1 - eMail "xxxx@gmai.com", 2 - empty value). If i use Trigger by more users (xxxx2@gmail.com - xxxxN@gmail.com), script get more EMPTY value. And its not good for me.

Look at screen below:

Screenshot with annotations


Viewing all articles
Browse latest Browse all 9782

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>