在特定单元格旁边添加一个值

用户名

我想为一个在人力资源部门工作的朋友编写一个程序,该程序可以自动将拒绝函发送给被拒绝的申请人。

为了对应用程序有一个总体了解,他使用了一个电子表格,其中记录了姓名,职位,访谈等。每个申请人在文档中都有一行。

如果他拒绝候选人,则在特定列中加上“ A”。我希望程序识别那些“ A”,给申请人写一封电子邮件,然后在“ A”旁边的单元格中放入“ done”一词。

代码如下:

function Absagen() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var range = sheet.getRange(1, 5);
    var endRow = range.getValue();
    var startRow = 1;
    var numRows = endRow;
    var dataRange = sheet.getRange(startRow, 1, numRows, 10)
    var data = dataRange.getValues();

    for (i in data) {
        var row = data[i];
        var emailAddress = row[0];
        var absage = row[8];
        var absageSent = row[9];
        var mailLanguage = row[3];
        var gender = row[7];
        var firstName = row[5];
        var lastName = row[6];
        Logger.log("absage = "+ absage +" ?");
        if (absage == "A" && absageSent != "DONE" && mailLanguage == "2" && gender == "1"){
            var message = "<HTML><BODY>"
                              +"blablabla";
            var subject = "Ihre Bewerbung";
            MailApp.sendEmail(emailAddress, subject, "", {htmlBody: message});
            var destRow = Number(startRow); ++ destRow;
                sheet.getRange((destRow+i), 10).setValue("DONE");               
            SpreadsheetApp.flush();
        }
    }
}
莫格斯达

最初的问题是,“ DONE”值被写入多个位置,然后又写入错误的行中,可以通过简化代码来解决。通过相同的简化,可以避免与数据类型强制有关的问题(来自Serge答案的注释中的String vs Number内容)。

这是第一件事,似乎令人困惑。您似乎期望单元格E1包含一个数字,该数字将告诉您要评估的行数。

var range = sheet.getRange(1, 5);
var endRow = range.getValue();

然后设置startRow=1,并使用它来读取数据。当为时i===0,您再次设置firstName为单元格的内容E1有点不对劲。您可能会得到不是的数字endRow,或者尝试处理标头。对于此特定功能可能没问题,但是最好使用可以可靠地重复的模式。

假设第一行包含电子表格的标题,而所有随后的行包含需要处理的相关数据。如果mailLanguagegender这些值比较,则必须保留唯一的数据类型强制,如果这些值的数字被强制输入为字符串,或者这些列的格式设置为“纯文本”。

function Absagen() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var headerRows = 1; // There are this many rows of header info
    var dataRange = sheet.getDataRange();  // Range from A1 to last row & col with data
    var data = dataRange.getValues();  // 2-dimensional array from datarange

    // Start after header rows, process all remaining data rows
    for (var rowNum=headerRows; rowNum < data.length; rowNum++) {
        var row = data[rowNum];
        var emailAddress = row[0];
        var absage = row[8];
        var absageSent = row[9];
        var mailLanguage = row[3];
        var gender = row[7];
        var firstName = row[5];
        var lastName = row[6];
        Logger.log("absage = "+ absage +" ?");
        if (absage == "A" && absageSent != "DONE" && mailLanguage == 2 && gender == 1){
            var message = "<HTML><BODY>"
                              +"blablabla";
            var subject = "Ihre Bewerbung";
            MailApp.sendEmail(emailAddress, subject, "", {htmlBody: message});
            // Range for update is at (rowNum+1) because the _array_ starts at 0,
            // but sheet rows start at 1.
            sheet.getRange((rowNum+1), 10).setValue("DONE");               
            SpreadsheetApp.flush();
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Excel中插入行,并在特定单元格中添加一个值

在公式中使用一个单元格的值来查找特定单元格

从另一个工作表上的特定单元格中搜索值

更改另一个单元格时清除特定单元格

搜索单元格中的特定单词,即使出现一个单词也添加true或false

在范围内的特定单元格中输入的条件值,将解锁另一个范围内的另一个特定单元格(VBA,范围偏移)

在最大值旁边找到一个单元格的值

获取旁边单元格行的值,否则只有一个空白单元格和公式

将特定单元格数据移动到另一个单元格

根据特定条件将特定单元格值从一个工作表复制粘贴到另一个工作表

如果其他单元格包含特定文本,则将特定单元格的总和放入一个单元格中

VBA自动在单元格中的特定单词旁边添加文本

根据另一个单元格的开头替换特定的单元格值

上一个值旁边的单元格中的appendLine

如何找到一个范围内特定单元格的总和?

如何查找包含一个或多个特定单词的单元格数

将特定单元格复制到另一个工作表

复制特定单元格并粘贴到另一个工作表中

读取numpy矩阵的一个特定单元格

如何使用只有一个特定单元格的范围方法?

创建一个删除特定单元格的按钮,如果单元格中的单元格值为空或为零,则将其上移一行

在另一个公式中使用的单元格旁边的单元格的AVG

根据另一个单元格的值调用一个单元格的特定宏

根据条件复制特定值并粘贴到 Google Sheet 中另一个工作表的特定单元格中

当特定单元格的值更改时,如何自动将数据添加到另一个工作表?

如果给定单元格中的值与另一个具有匹配条件的单元格在一行中相减,则减去这些值

计算特定单元格日期中具有特定 MONTH 的行数和另一个单元格中的布尔条件

如何将范围从特定单元格复制到特定列中的最后一个非空单元格

更改特定单元格值时更新特定单元格值