Excel 当某人的名字被插入到一个单元格中时,用谷歌脚本发送电子邮件给他

Excel 当某人的名字被插入到一个单元格中时,用谷歌脚本发送电子邮件给他,excel,scripting,google-apps-script,spreadsheet,issue-tracking,Excel,Scripting,Google Apps Script,Spreadsheet,Issue Tracking,我正在尝试使用谷歌电子表格制作一个票务系统,员工或客户可以在表格中输入他们的查询,并将其保存到我可以查看的电子表格中。我需要做的一件事是能够在查询行的一个单元格中填写员工姓名,这将为该员工分配此问题,以尝试解决它。我需要知道是否有一种方法可以使用谷歌脚本来做到这一点。如果你查看整个专栏,我知道该怎么做,但我不想每次在手机上加名字时都给每个人发电子邮件,只给那个人发邮件 例如,一位客户填写表格,说他们有问题,一旦我进入电子表格,我看到它已经更新,并希望将问题分配给特定的人,因此我在指定的列中填写单

我正在尝试使用谷歌电子表格制作一个票务系统,员工或客户可以在表格中输入他们的查询,并将其保存到我可以查看的电子表格中。我需要做的一件事是能够在查询行的一个单元格中填写员工姓名,这将为该员工分配此问题,以尝试解决它。我需要知道是否有一种方法可以使用谷歌脚本来做到这一点。如果你查看整个专栏,我知道该怎么做,但我不想每次在手机上加名字时都给每个人发电子邮件,只给那个人发邮件

例如,一位客户填写表格,说他们有问题,一旦我进入电子表格,我看到它已经更新,并希望将问题分配给特定的人,因此我在指定的列中填写单元格,我可以填写分配给谁。一旦我把它分配给一个人,他们就会收到一封包含该行数据的电子邮件,这样他们就知道了问题所在

希望我解释得足够清楚。非常感谢您的帮助

我举了一个简单的例子:

您必须检查代码并使其适应您的特定设置(即:图纸名称、数据位置等)

希望这有帮助

function onEdit(e) {
  doEvent(e);
}

function doEvent(e) {

  var ss        = SpreadsheetApp.getActiveSpreadsheet();
  var sheet     = e.source.getActiveSheet();
  var sheetName = sheet.getName();
  var r         = e.source.getActiveRange();
  var col       = r.getColumn() ;
  var row       = r.getRow();

  var i = 0 ;

  switch ( sheetName ) {
    case 'MySheet' : // just to make sure you are on the right sheet
      if ( row > 1 ) { // skip headers row if you have
        var ticketDataRange = sheet.getRange(row, 1, 1, numberOfColumnsToGrab);
        var ticketData = ticketDataRange.getValues();
        if ( col == columnEmailOfOwnerOfTicket ) {
          var emailOwnerOfTicket = ticketData[columnEmailOfOwnerOfTicker-1];
          GmailApp.sendEmail( emailOwnerOfTicket, "New Task Assigned", '', {htmlBody: 'A new task has been assigned to you by: <strong>Me!</strong><br>Task Linked to Contact: <strong>BlahBlah</strong><br><br>Here can be description' + ticketData[positionOfDescription].replace(/\n/g, '<br>') + '<br><br><p>Due Date: <strong>' + Utilities.formatDate(ticketData[positionOfDueDate],SpreadsheetApp.getActive().getSpreadsheetTimeZone(),"EEE, MMM d, yyyy") + '</strong></p><br>' } );
        }
      }
      break;
  }

}
函数onEdit(e){
doEvent(e);
}
函数doEvent(e){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=e.source.getActiveSheet();
var sheetName=sheet.getName();
var r=e.source.getActiveRange();
var col=r.getColumn();
var row=r.getRow();
var i=0;
开关(名称){
案例'MySheet'://只是为了确保您在正确的工作表上
如果(行>1){//如果有,则跳过标题行
var ticketDataRange=sheet.getRange(行,1,1,numberOfColumnsToGrab);
var ticketData=ticketDataRange.getValues();
if(col==columnEmailOfOwnerOfTicket){
var emailOwnerOfTicket=ticketData[columnEmailOfOwnerOfTicker-1];
GmailApp.sendmail(emailOwnerOfTicket,“新任务已分配”,”,“{htmlBody:”一个新任务已分配给您:Me!
链接到联系人的任务:BlahBlah

这里可以是描述“+ticketData[描述的位置”)。替换(/\n/g,
)+”

截止日期:+Utilities.formatDate(ticketData[positionOfDueDate]、SpreadsheetApp.getActive().getSpreadsheetTimeZone()、“EEE,MMM d,yyyy”)+'


'; } } 打破 } }