【发布时间】:2018-07-31 16:59:36
【问题描述】:
我是 javascript 新手和新手编码员。我一直在尝试为 Google 表格编写一个简单的脚本,以将两列数据连接到另一列:
我下面的脚本运行良好,但仅将 Aaron Ward 生成为 Desired Column C 的第 1 行。我确信我所缺少的确实很简单,但如果有人有时间帮助新手,我将非常感激它。
function concatenate() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var lr = sheet.getLastRow()
var values1 = sheet.getSheetValues(1, 1, lr, 1);
var values2 = sheet.getSheetValues(1, 2, lr, 1);
var results = [];
for (var i = 0; i < lr; i++) {
results = [values1[i] + " " + values2[i]];
Logger.log(results);
sheet.getRange(1, 3, results.length).setValues([results]);
}
}
【问题讨论】:
-
发生这种情况是因为 1)您总是抓取第 1 行第 3 列,长度为 1 行,以及 2)您在循环中写入,而不是将行数据收集到输出数组中然后写入一旦完成循环。
-
感谢您的帮助。在循环内写入是主要问题,我让它像这样工作(不确定是否最干净): function concatenate() { var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues(); var lr = sheet.getLastRow() var values1 = sheet.getSheetValues(1,1,lr,2);记录器.log(values1);变种结果 = []; for (var i=0; i
-
考虑使用
Array#map和/或Array#join来简化您的代码/增加其表现力。如果您认为它对其他人有用,也可以随时提交您的固定代码作为答案,或者如果您认为它没有用,请删除该问题
标签: google-apps-script google-sheets