检查特定列是否包含活动单元格

时间:2018-07-14 12:16:34

标签: google-apps-script google-sheets

我刚开始使用apps-script冒险,而我已经陷入困境。

我正在尝试编写脚本,该脚本将在编辑表中的任何单元格时触发,检查该单元格是否在特定范围内(整个列“ O”),然后获取单元格行并将邮件发送给与该行绑定的人。

只要有第一部分和最后一部分,我就很难检查该范围是否包含单元格:

var cell = get.ActiveCell();
var range = ss.getRange("O:O");

但是,几乎没有类似的列具有相似的值,而我只想检查一下,直到获得类似的结果

var ss = getActiveSpreadsheet();
var sheet = ss.getSheetByName("zamówienia");
var cell = get.ActiveCell();
var range =ss.getRange("O:O");

while (i != range.lenght){
    if (cell != range[i]) {
        i++;
    }
    else {
        break;
        return 1;         
    }
}

2 个答案:

答案 0 :(得分:1)

您应该使用onEdit()简单触发器,然后才能使用关联的event object

示例:

// This will show a pop up in your spreadsheet whenever you edit a cell in Column O of any sheet
function onEdit(e) {
  var columnO = 15;
  if (e.range.getColumn() === columnO) {
    Browser.msgBox("Column O");
  }
}

答案 1 :(得分:0)

如果有人试图解决相同的问题,就可以这样做。在编辑简单触发器上添加了

function sprawdzenie(){ 
var ss = SpreadsheetApp.getActive();
var activeRow = ss.getActiveCell().getRow();
var  activeCol = ss.getActiveCell().getColumn();

if (activeCol === 13){
    var klient = SpreadsheetApp.getActiveSheet().getRange("c"+activeRow).getValue();
var data_wys = SpreadsheetApp.getActiveSheet().getRange("H"+activeRow).getValue();
var numer_oferty =  SpreadsheetApp.getActiveSheet().getRange("E"+activeRow).getValue();
var kolor =  SpreadsheetApp.getActiveSheet().getRange("B"+activeRow).getValue();
var prowadzacy = (SpreadsheetApp.getActiveSheet().getRange('AL'+activeRow).getValue() );
var zejscie = SpreadsheetApp.getActiveSheet().getRange("M"+activeRow).getValue();
var temat = ('Zejście z produkcji ' + numer_oferty + ' wysłanej dnia ' + data_wys);
var wiadomosc = (' Oferta o numerze :' + numer_oferty + ' ' + klient + ' w kolorze : ' + kolor + ' zeszła z dniem : ' + zejscie);

MailApp.sendEmail(prowadzacy, temat, wiadomosc);}