Google apps script 比较google电子表格中的两列,如果值不匹配,则使用google脚本发送邮件
我正在为google sheet上的一列中的费率列表创建一个身份验证模块。 我在c栏中有一份原始税率表。我在b栏有实际售价。每个销售率(sRate)记录在b列中。脚本应将b列中的销售费率与c列中的原始费率列表进行比较,如果任何值不相等,则应在d列中记录“相等”或“不相等”,并且我应收到一封警报邮件,因为每个“不相等”条目都提到了与费率不匹配的产品名称。(名字是用可乐写的)。我已经写了剧本的一部分,但并不令人满意 数据格式Google apps script 比较google电子表格中的两列,如果值不匹配,则使用google脚本发送邮件,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在为google sheet上的一列中的费率列表创建一个身份验证模块。 我在c栏中有一份原始税率表。我在b栏有实际售价。每个销售率(sRate)记录在b列中。脚本应将b列中的销售费率与c列中的原始费率列表进行比较,如果任何值不相等,则应在d列中记录“相等”或“不相等”,并且我应收到一封警报邮件,因为每个“不相等”条目都提到了与费率不匹配的产品名称。(名字是用可乐写的)。我已经写了剧本的一部分,但并不令人满意 数据格式 A B C D
A B C D E F ...
1 name oRate sRate is equal?
2 item1 10 10 equal
3 item2 30 28 not equal
.
n
A部分-曲目更改
function trackChange() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Auth" ) { //checks that we're on the correct sheet
var orate = s.getActiveCell();
if( orate.getColumn() == 2 ) { //checks the column
var srate = r.offset(0, 1);
if( srate.getValue() != orate.getValue() ) //is it equal?
var auth = 'not equal';
var authCell = srate.offset(0,1);
authCell.setValue(auth);
};
};
}
设置一个有时间限制的触发器。但它从不编辑工作表
B部分-发送邮件
function sendMail() {
if (SpreadsheetApp.getActive().getSheetByName('Auth').getRange('E2:E676').getValue()== 'not equal') return;
MailApp.sendEmail("abc@xyz.com", "URGENT: AUTHORIZE CHANGE OF sale price", "mail body", {
name: "abc"
});
它每分钟发送一封邮件,即使所有单元格都相等。我不知道如何添加可乐产品的名称。
请帮忙 尝试使用以下代码:
function checkEqual(){
var source = SpreadsheetApp.openById("fileID")
var sheet = source.getSheetByName("Sheet2");
var data = sheet.getDataRange().getValues();
for (var i=1; i<data.length; i++){
//first column will be empty for results
var first = data[i][1];
var second = data[i][2];
Logger.log(first + " " +second)
if(first == second){
var cell = sheet.getRange(i+1,4);
cell.setValue("equal")
//emailOwner();
var cell2 = sheet.getRange(i+1,5);
cell2.setValue("emailed")
}
else{
}
}
}
function emailOwner(){
//email code
}
函数checkEqual(){
var source=SpreadsheetApp.openById(“fileID”)
var sheet=source.getSheetByName(“Sheet2”);
var data=sheet.getDataRange().getValues();
因为(var i=1;我工作得很有魅力!谢谢!