首页 > 解决方案 > Google 表格脚本 - 在同一个电子表格中将不同的数据从一张表格复制到另一张表格

问题描述

我想知道你是否可以帮我解决这个问题。尽管尝试学习,但我对脚本的了解很差。

这是我的电子表格的一个例子

每个月,在每月表中,我从冻结行下方的所有行(仅列 B、C 和 D)中复制数据,并在我的脑海中记下复制的行数(单元格 E2 中显示的数字,其中可以变化)。然后我转到 Daily 表,在未冻结部分的顶部插入所需的行数,然后粘贴数据值 (CTRL Shift V)。

我一直在尝试使用脚本自动执行此操作,但未成功。我尝试将其他解决方案的代码拼凑在一起,但是使用的不同方法和我缺乏知识意味着我无法让它们工作。

希望你能提供帮助。

非常感谢。

标签: google-apps-scriptgoogle-sheetscopy-pastedynamic-data

解决方案


经过多次尝试但都失败了,我现在设法通过录制一个宏,计算出结果脚本中的每一行或每一部分的作用,然后编辑它,以及一些额外的在线需要研究。这可能有点笨拙,但这是我努力的结果:

function CommitMonthly() {
  // Script is only ever run from the Monthly sheet via the Commit button. Get the number of rows.
  var spreadsheet = SpreadsheetApp.getActive();
  var NumberOfRows = spreadsheet.getRange('E2').getValue();
  
  // Select the Daily sheet, select top row, insert required number of rows above it.
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Daily'), true);
  spreadsheet.getRange('B4').activate();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), NumberOfRows);

  // Copy and paste the data from Monthly to new rows in Daily.
  spreadsheet.getRange('Monthly!B5:D').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};

非常感谢您的帮助。


推荐阅读