我正在爲谷歌電子表格編寫一個腳本,用於檢查特定單元格的值是否爲「是」。如果是這樣,它應該結束。如果沒有,它應該發送一個包含其他幾個單元格的電子郵件到一個指定的地址,並寫入「Yes」給指定的單元格。然而,代碼中的if條件似乎總是評估爲真,即使它應該評估爲false。腳本向指定的單元格寫入「是」併發送電子郵件。但是,儘管電子郵件包含指定單元格的內容,但它全部無序。這裏的腳本:爲單元格值賦值失敗
function sendNotification() {
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange(2,1,1,6);
var data = dataRange.getValues();
var dateSubmitted = data[0];
var dateDue = data[1];
var url = data[2];
var currentText = data[3];
var newText = data[4];
var emailSent = data[5];
var test = 'Yes';
var emailAddress = '[email protected]';
var message = 'On ' + dateSubmitted + ' a colleague requested that ' + url + ' be changed to replace the text ' + currentText + ' with ' + newText + '. This change should be completed by ' + dateDue;
var subject = 'A website change has been requested';
if (emailSent!=test) { // Prevents sending duplicates
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(2,6).setValue(test);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
相關的細胞(對不起,試圖屏幕截圖,代表太低):
A2:14年1月11日 B2:14年1月17日 C2: www.google.com D2:Lorem存有 E2:悲坐阿米特 F2:是
這裏就是它轉儲到郵件正文:
於星期六2014年1月11日00:00: 00 GMT- 0500(美國東部標準時間),星期五2014年1月17日00:00:00 GMT-0500(美國東部標準時間),www.google.com,Lorem ipsum,Dolor sit amit,是一位同事要求將undefined更改爲undefined以取代未定義的文本。這個改變應該通過undefined完成
我已經搜索了很多,並沒有找到任何行爲的解釋。我不認爲這是腳本無法讀取單元格區域的值,因爲電子郵件正文包含這些值(不在我期待的位置)。然後,再次,在我期待這些值的地方,它會下降「未定義」。
我想通了。該數組已正確創建,但我未能解釋數據[#]看起來連續的事實。因此,我的代碼將讀入數組的所有行都轉儲到dateSubmitted中,而其他變量沒有被分配任何東西。解決方法是將變量賦值更改爲be = data [0] [#],以便每個人獲得一個特定單元的數據值。 [本頁](https://developers.google.com/apps-script/reference/spreadsheet/range?hl=en#getValues())讓我很直觀。 – hwestgate