首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google脚本:工作表复制+重命名并移到末尾

Google脚本:工作表复制+重命名并移到末尾
EN

Stack Overflow用户
提问于 2022-11-10 11:18:46
回答 1查看 32关注 0票数 1

我有一个简单的发票系统,我唯一的问题是,我不知道如何将多个脚本组合成一个。我想要的是,当我按下create发票来复制打印的纸张并相应地重命名它( invoice nr + Customer name,假设B12单元格包含客户名称,并将发票号G12 )之后,工作表名将是"James 007")。到目前为止,我使用这些脚本来实现复制和移动到最后。

代码语言:javascript
运行
复制
function Dupewithvaluesonly() {
  const range = SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet().getDataRange();
 
  range.copyTo(range, {formatOnly: true});  // Added
  range.copyTo(range, {contentsOnly: true});
  
}
代码语言:javascript
运行
复制
function MovetoEnd() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.moveActiveSheet(ss.getNumSheets());
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-10 11:30:18

我相信你的目标如下。

  • 您想要复制活动工作表并使用活动工作表的单元格"B12“和"G12”中的值来设置工作表名。
  • 也希望将单元格值转换为静态值。
  • 您希望通过合并您的2个函数来实现这一点。

在这种情况下,下面的修改如何?

修改脚本:

代码语言:javascript
运行
复制
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.
}

注意:

如果您想使用特定的工作表而不是活动的工作表,请按以下方式修改上面的脚本。

代码语言:javascript
运行
复制
- From

const sheet = ss.duplicateActiveSheet();

ss.getSheetByName("Sheet1").copyTo(ss).activate();//请将工作表名称设置为"Sheet1“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74388137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档