我有一个脚本可以成功提取电子邮件的正文:
var msgBody = messages[m].getBody();
此消息包含650多行信息,我想将每一行文本放在同一列的不同行中(例如,如果将其粘贴到单元格H1中,它将起作用。运行以下命令:
listserveSheet.getRange("H1").setValues(msgBody)
它自然会将所有650余行信息放在该单元格中,而不是从H1到H652单元格(或任何给定电子邮件的最后一个单元格)。
有什么主意如何更改我的变量以使其能够按照我想要的方式设置值?我在想也许循环遍历变量并分别设置每个值。但是我不知道每次循环时如何从变量中拉出一行。
答案 0 :(得分:0)
由于Suhail在上面的评论中提出了建议,所以我找到了答案的方法。
var msgBody = messages[m].getBody();
var dest = msgBody.split("\n");
拆分是否很好。然后,我可以以此将各个值设置到各个单元格中。
for (var i =0; i < dest.length; i++) {
listserveSheet.getRange("H"+ (i+1)).setValue(dest[i]);
}
我曾尝试使用setValues操作,但是显然,我没有涉足2D范围业务。我怀疑如果我确实了解2d范围,则在更大范围内使用setValues,而不是在单元格上循环setValue会更快。这是我尝试过的方法(以及其他几种无效的排列方式:
listserveSheet.getRange(1,8,dest.length,dest[0].length).setValues(dest);
再次感谢您的帮助