这是我在这里的第一篇文章,很抱歉,如果我的问题不清楚。
我想使用Google表格发送个性化电子邮件,但首先我需要创建一个脚本。下面是我的表的一个空例子。
我需要此电子表格检查行中是否有黄色背景的单元格。如果此条件为真,则选择列中黄色单元格的标题值,并将此值作为字符串放入变量中。然后选择此黄色单元格的值并将此值连接到同一个变量。
黄色单元格的每一行的相同情况
实施例: 我想检查Mike Doe行的这个条件。有两个黄色细胞F2和G2。首先,如果它找到了F2单元格,则应选择标题值(04.2017)并将其作为字符串连接到变量。然后应该选择单元格F2(50)的值,并将其加入相同的变量。目前,我们的变量值=" 04.2017 - 50"。接下来应检查同一行中的另一个黄色单元格(G2)并执行完全相同的操作。所以在这一行的末尾,变量应该有值=" 04.2017 - 50,05.2017 - 50"。当脚本完成检查此行时,应将此变量的整个值放在Message单元格中。
下面是一个空的例子。
https://docs.google.com/spreadsheets/d/1ZmVaEw6QS0V1A401U9l6wi2ppWfylKU74eTK4bxZlOU/edit?usp=sharing
我希望,一切都很清楚。如果有人帮助我,我将非常感激。
答案 0 :(得分:1)
好的,所以这是我在StackOverflow上的第一个答案..希望它有帮助=)
请注意,下面只有在背景是完全相同的黄色#ffff00时才有效..我建议您不要使用颜色作为事件发生的条件,但下面的内容对您有用..
function myFunction() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Arkusz1');
var range = sheet.getDataRange();
var formatting = range.getBackgrounds();
var data = range.getValues();
for(var y = 1; y < data.length; ++y){
var message = '';
for(var x = 0; x < data[y].length; ++x){
if(formatting[y][x] == '#ffff00'){
/*/
Because your header contains a Date Object, it will show as for example Sat Apr 01 2017 00:00:00 GMT+0200 (CEST)
I Guess you want it to show exactly as it shows in your spreadsheet? Then the below two lines will do:
/*/
var header = new Date(data[0][x]);
header = header.getMonth() + 1 + '.' + header.getFullYear();
message += 'Header: ' + header + ', Value: ' + data[y][x] + ' ';
};
data[y][7] = message
}
}
range.setValues(data);
}