我正在尝试使用谷歌电子表格制作票务系统,其中员工或客户可以在表单中输入他们的查询,并将其保存到我可以查看的电子表格中。我需要的一件事是能够使用员工姓名填写查询行中的单元格,这将为该问题分配该员工以尝试修复它。我需要知道是否有办法使用谷歌脚本来做到这一点。如果你正在检查整个专栏我知道怎么做,但我不想每次向一个单元格添加一个名称时给所有人发送电子邮件,只有那个人。
例如,客户填写表单说他们有问题A,一旦我进入电子表格,我看到它已经更新,并希望将问题分配给特定的人,所以我填写了一个单元格专栏我已指定我可以填写其分配给谁。一旦我将其分配给某个人,他们就会收到一封包含该行数据的电子邮件,以便他们知道问题。
希望我解释得足够多。任何帮助是极大的赞赏。
答案 0 :(得分:0)
我做了一个简单的例子:
您必须检查代码并使其适应您的特定设置(即:工作表名称,数据位置等)。
希望得到这个帮助。
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;
}
}