Функция для очистки ячейки на основе нажатия на URL-адрес в электронной таблице Google, чтобы открыть форму? - PullRequest
0 голосов
/ 01 мая 2020

Можно ли создать функцию, которая будет очищать ячейку при нажатии на URL в активной строке? Мне нужно очистить ячейку в активной строке в столбце AG или [32] всякий раз, когда активируется ссылка для ответа в этой ячейке, чтобы открыть ее на go обратно в форму. Sampe of url links in spreadsheet below

У меня есть код, который создает значение даты в столбце, который мне нужно очистить. Код должен автоматически оплачивать электронные письма (при срабатывании) при отправке электронного письма. Однако, когда необходимо добавить ответ в форму, необходимо активировать «Ссылку ответа», чтобы пользователь мог вернуться к форме для заполнения данных ответа. Я хочу, чтобы при обновлении формы электронные письма снова отправлялись go. Но поскольку я добавил туда дату, чтобы электронные письма не отправлялись снова и снова, обновленные электронные письма отправлять нельзя. После повторной отправки формы она вернет дату в ячейку.

function disburseEmails(){

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Form Responses 1');
  var allRange = sheet.getDataRange();
  var allData = allRange.getValues();

  allData.shift();

  allData.forEach(function(row,i) {

if(row[32] === '') {

  // get data
  var dateSubmitted = row[0];
  var dateEdited = row[1];
  var studentID = row[2];
  var studentName = row[3];  
  var responseLink= row[4];
  var submitRespond = row[5];
  var senderName = row[6];
  var senderEmail = row[7];
  var senderPhone = row[8];
  var senderExt = row[9];
  var senderRole = row[10];
  var senderReason = row[11];
  var senderAdditional = row[12];
  var householdName = row[13];
  var householdAddress = row[14];
  var householdPhone = row[15]
  var studentGrade = row[16];
  var studentSchool = row[17];
  var anySiblings = row[18];
  var sibling1Name = row[19];
  var sibling1Grade = row[20];
  var sibling1School = row[21];
  var sibling2Name = row[22];
  var sibling2Grade = row[23];
  var sibling2School = row[24];
  var additionalSiblings= row[25];
  var numberHomeVisit = row[26];
  var responseContactName = row[27];
  var responseContactRelationship = row[28];
  var responseOutcome= row[29];
  var responseAdditional = row[30];
  var email = row[31];
  var confirmSenderEmail = row[32];

  // send an email to the sender for each row
  sendEmail(dateSubmitted, email, dateEdited, studentID, studentName, responseLink, submitRespond, senderName, senderEmail, senderPhone, senderExt, senderRole, senderReason, senderAdditional, householdName, householdAddress, householdPhone, studentGrade, studentSchool, anySiblings, sibling1Name, sibling1Grade, sibling1School, sibling2Name, sibling2Grade, sibling2School, additionalSiblings, numberHomeVisit, responseContactName, responseContactRelationship, responseOutcome, responseAdditional);

  // add date to confirm the sender email went out
  var d = new Date();
  sheet.getRange(i + 2, 33).setValue(d);


   }    
  }); 
}

1 Ответ

0 голосов
/ 11 мая 2020

Предположим, у вас есть ссылки, необходимые в столбце F:

function onSelectionChange(e) {
  var range = e.range;
  var sheet = e.range.getSheet();
  if(range.getColumn() == 7) {
    sheet.getRange("RANGE_OF_THE_CLEARED_CELL").clear();
  }
}

В приведенном выше фрагменте используется триггер onSelectionChange(e), который будет срабатывать при выборе другой ячейки. Чтобы проверить, что ячейка из строки F выбрана, установлено условие, и на ее основе требуемая ячейка очищается.

Примечание

Это работает для всех ячеек. в столбце F, поэтому, если вы хотите, чтобы он указывал c для конкретной ячейки, вы можете просто добавить другое условие.

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...