google-apps-script - 将单行导出到新工作表而不覆盖的宏
问题描述
所以标题几乎说明了一切。我有一个带有下拉列表、公式等的动态行,我想将该行的值导出到新工作表,而不覆盖我设法做到的先前导出的行(覆盖)。所以我会制作宏,使用它,它只会将值粘贴到以前的导出中。谁能帮我这个?这是我的宏顺便说一句,以防有人需要它。
function Export2() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A2:J2').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('TVDB'), true);
spreadsheet.getRange('A2').activate();
spreadsheet.getRange('TV!A2:J2').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};
解决方案
您正在复制到spreadsheet.getActiveRange()
- 这意味着到主动选择的范围
如果要复制到第一个空行,则需要使用 Apps Script 方法getLastRow()修改代码
重要的:
在使用该方法getLastRow()
时,一般来说,复制工作表时,建议您将这些方法应用于选定的sheet
,而不是spreadsheet
为了避免出现问题。
样本:
function Export2() {
var spreadsheet = SpreadsheetApp.getActive();
var originSheet = spreadsheet.getSheetByName("TV");
var destinationSheet = spreadsheet.getSheetByName('TVDB');
var lastRow = destinationSheet.getLastRow();
originSheet.getRange('A2:J2').copyTo(destinationSheet.getRange(lastRow +1, 1), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};
我建议您花一些时间查看Apps 脚本文档,以便更好地理解代码并在需要时进行修改。请注意,录制宏通常不会产生最有效和最优雅的代码。
推荐阅读
- android - 当我从多选微调器中选择多个项目时如何获取项目 ID 而不是项目名称
- linux - 如何使用一个命令 ssh 自动连接跳线或代理和服务器
- javascript - 如何使用 Javascript 进行转换?
- regex - 使用 grep 函数保留特定行
- mysql - SQL 从一个表中获取所有列以及另一个表中由外键关联的分组列的计数
- javascript - 传播类函数
- excel - 从 Postico 导出到 CSV 并在 Excel 上打开时如何更正日期格式?
- sql - 将字符串(看起来像 list )拆分为 Hive 中的值列表
- javascript - 当父项上的下一项与选择器上的 ngIf 具有相同的变量值时,角度子组件不会被破坏
- react-native - 将 react-spring 用于 react-native