[英]How to get a specific column's value in the last row with data
我是JS的新手,嘗試創建一個腳本,每次填寫表格時都會觸發電子郵件。 電子郵件需要有一個非常具體的標題和正文,該標題和正文是在我的工作表中創建的。
具體來說,我需要將主題行設置為數據的最后一行中的第I列,並將我的電子郵件正文存儲為F列。我能夠獲取腳本來選擇正確的最后一行,但我一直在努力尋找方法獲取正確的列值。
目前,我已經嘗試了一段代碼,但出現錯誤
TypeError:在對象346中找不到函數getValue。(第7行,文件“代碼”)關閉
function sendEmail() {
// Fetch the email address - This is a specific email address in the sheet I need stuff to go to
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Reference").getRange("F2");
var emailAddress = emailRange.getValues();
// Send Alert Email.
var message = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1").getRange("A1").getDataRegion().getLastRow().getValue() // KMS Survey Text
var subject = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1").getRange("A1").getDataRegion().getLastRow().getValue(); // KMS Survey Title
MailApp.sendEmail(emailAddress, subject, message);
}
讓我們糾正函數的第二部分:
// Send Alert Email.
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1");
var lastRow = sheet.getRange("A1").getDataRegion().getLastRow();
var message = sheet.getRange(lastRow, 7).getValue(); // (F column is 7-th) KMS Survey Text
var subject = sheet.getRange(lastRow, 9).getValue(); // (I column is 9-th) KMS Survey Title
MailApp.sendEmail(emailAddress, subject, message);
該錯誤是由於不正確使用getLastRow()方法引起的。 實際上,它返回一個數字,而不是對象。 有了數字,我們可以引用所需的最后一行單元格並獲取其值。
另外,當范圍包含單個單元格時,我建議使用getValue()
方法而不是getValues()
。
這將完全滿足您的需求。 我已經清理了一些變量,因為先不要激活電子表格,然后是工作表,再到范圍等。 您可以定義一次,然后使用定義的變量隨意獲取不同的范圍。
function sendEmail() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var refSheet = spreadsheet.getSheetByName('Reference');
var formSheet = spreadsheet.getSheetByName('Form Responses 1');
var lastRow = formSheet.getDataRange().getLastRow();
var subject = formSheet.getRange(lastRow, 6).getValue(); //KMS Survey Text
var message = formSheet.getRange(lastRow, 9).getValue(); //KMS Survey Title
var emailAddress = refSheet.getRange("F2").getValue();
// Send Alert Email.
MailApp.sendEmail(emailAddress, subject, message);
}
代替getRange().getDataRegion().getLastRow()
,可以在工作表上使用getDataRange()
來獲取當前在工作表上獲得的整個數據范圍,然后在其上使用getLastRow()
代替:
var lastRow = formSheet.getDataRange().getLastRow();
然后使用它來獲取電子郵件的數據范圍,請注意: getRange()
行/列從1開始索引,因此F列= 6,I列= 9:
var subject = formSheet.getRange(lastRow, 6).getValue(); //KMS Survey Text
var message = formSheet.getRange(lastRow, 9).getValue(); //KMS Survey Title
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.