google-apps-script - 如何使用谷歌应用脚本从另一张表中选择数值?
问题描述
我有 2 个谷歌工作表标签,第一个工作表有 col A - 电子邮件地址, Col B - 消息, Col C - 状态。第二张sheet2只有一列Col A - 凭证代码,我已经在sheet2 Col A中插入了所有必要的数字。所以每次我运行我的脚本都会发送电子邮件并根据sheet1的最后一行自动从sheet2中选择数字数据。电子邮件发送没有问题,但我无法从我的电子邮件中的 sheet2 Col A 获取优惠券代码数据。
var EMAIL_SENT = 'EMAIL_SENT';
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSheet();
var sheet2 = SpreadsheetApp.getActive().getSheetByName("Sheet2");
var strRow2 = 2;
var numRows2 = 2;
var dataRange2 = sheet2.getRange(strRow2, 1, numRows2, 1)
var data2 = dataRange2.getValue();
for (var j = 0; j < data2.length; ++j) {
var row2 = data2[j];
var code = row2[0];
}
var startRow = 2;
var numRows = 2;
var dataRange = sheet.getRange(startRow, 1, numRows, 3);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[0];
var message = row[1] + "\n" + code // this code no working
var emailSent = row[2];
if (emailSent !== EMAIL_SENT)
var subject = 'Sending emails from a Spreadsheet';
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT);
SpreadsheetApp.flush();
}
}
}
解决方案
为了找到包含内容的最后一行,您应该使用:getLastRow()。
这是解决方案:
function sendEmail() {
var ss = SpreadsheetApp.getActive();
var sh1 = ss.getSheetByName("Sheet1")
var sh2 = ss.getSheetByName("Sheet2")
var EMAIL_SENT = 'EMAIL_SENT';
var sh1_LR = sh1.getLastRow();
var sh1_EA = sh1.getRange(sh1_LR,1).getValue();
var sh1_M = sh1.getRange(sh1_LR,2).getValue();
var sh2_V = sh2.getRange(sh1_LR,1).getValue();
try{
MailApp.sendEmail(sh1_EA, sh1_M, sh2_V);
sh1.getRange(sh1_LR,3).setValue(EMAIL_SENT);
}
catch(e)
{Logger.log("sendEmail failed")}
}
推荐阅读
- python - 来自 tensorflow.core.example 的 example_pb2 适用于 python 2,但不适用于 python 3
- python - 如何以交替的反向和字母顺序打印字母?
- php - PHP - 如何使用 php curl 而不是表单提交来发送发布请求,然后重定向页面?
- node.js - 我的 npm install -g react-native-cli 不工作
- c# - 启用后如何选择() NumericUpDown?
- selenium-webdriver - 在我的测试脚本中,它必须单击一个按钮,但它使用 Cucumber 单击 selenium webdriver 中的其他按钮
- python - 当我将 .get_text() 用于 BeautifulSoup 时,什么也没有出现
- emacs - 使用 Helm 时,如何使 TAB 循环通过我的命令完整选项?
- reactjs - React TypeScript 16.8 如何在两个兄弟组件之间共享数据
- javascript - Onclick使用Jquery添加边框底部