我有一个简单的发票系统,我唯一的问题是,我不知道如何将多个脚本组合成一个。我想要的是,当我按下create发票来复制打印的纸张并相应地重命名它( invoice nr + Customer name,假设B12单元格包含客户名称,并将发票号G12 )之后,工作表名将是"James 007")。到目前为止,我使用这些脚本来实现复制和移动到最后。
function Dupewithvaluesonly() {
const range = SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet().getDataRange();
range.copyTo(range, {formatOnly: true}); // Added
range.copyTo(range, {contentsOnly: true});
}
function MovetoEnd() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.moveActiveSheet(ss.getNumSheets());
}
发布于 2022-11-10 11:30:18
我相信你的目标如下。
在这种情况下,下面的修改如何?
修改脚本:
function myFunction() {
// Copy the active sheet.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.duplicateActiveSheet();
// Retrieve the values from cells "B12" and "G12". And set the sheet name.
const [b12, , , , , g12] = sheet.getRange("B12:G12").getValues()[0];
sheet.setName(`${g12} ${b12}`);
// Convert values to static values.
const range = sheet.getDataRange();
range.copyTo(range, { formatOnly: true }); // This is from your script.
range.copyTo(range, { contentsOnly: true }); // This is from your script.
// Move the copied sheet to the last tab.
ss.moveActiveSheet(ss.getNumSheets()); // This is from your script.
}
注意:
如果您想使用特定的工作表而不是活动的工作表,请按以下方式修改上面的脚本。
- From
const sheet = ss.duplicateActiveSheet();
ss.getSheetByName("Sheet1").copyTo(ss).activate();//请将工作表名称设置为"Sheet1“。
https://stackoverflow.com/questions/74388137
复制相似问题