我正在尝试在 Google 表格上运行一个脚本,该脚本将允许我复制一定数量的用户并将其添加为列表。
一位同事为我制作了这段代码:
function BulkUpload() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getCurrentCell().offset(0, 0, 8, 1).activate();
spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 8);
spreadsheet.getCurrentCell().offset(8, 0).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.getCurrentCell().offset(9, 0).activate();
因为我需要这个给 36 个用户使用,我所做的就是复制脚本并粘贴了 36 次。这很有效,我最终得到了一份我的 36 个用户的列表,每个用户复制了 9 次,但有两个问题:
为了解决这两个问题,我需要:
举个例子,假设我们有 7 个用户,我想每人复制 6 次。我希望能够访问我的 Google 表格,使用这个小表格并添加所需的数字(即,根据此表格,单元格 B1 中的 5 和单元格 B2 中的 10:
A 列 | B列 |
---|---|
需要重复 | 6 |
用户 | 7 |
然后,在指定之后,我将粘贴列表并运行脚本,这应该带我:
为了透明,我必须做的数字非常大(数百个用户和数十次重复)所以这就是我需要脚本的原因,我只是在这里简化了,所以我可以添加一个示例而不会添加太多空间。
请注意,在编码方面,我和我的同事都是完全的初学者,因此可能有更简单的方法来实现这一点;我愿意接受任何其他可以达到相同预期结果的解决方案。
谢谢!
答案 0 :(得分:0)
您的脚本似乎是手动的,我认为这种方法会更好。但在这个中,您需要在工作表本身上列出名称,无论是在单独的单元格中还是作为参数。
function BulkUpload(names, repetition) {
var output = Array(names.length * repetition);
names.split(",").forEach(function (name, index) {
output.fill([name.trim()], repetition * index, repetition * (index + 1));
});
return output;
}
=BulkUpload(B2, B1)
=BulkUpload("Alex, John, Sam, Bob, Tony, Laura, Victor", B1)