自动填充脚本 Google 电子表格脚本

Mat*_*att 2 google-sheets google-apps-script

我需要你帮我解决这个问题。我的 Google 电子表格需要一个脚本。

我需要脚本来做CTRL+ A, CTRL+做的事情D

所以它会根据第一行自动填充整个页面。

在细节方面。

假设有两个工作表,Sheet1 和 Sheet2。

现在 Sheet2 是一个数据库。所以每个单元格和行都有纯值/文本。

在 Sheet1 中,我在第 1 行的每个单元格中有最简单的公式。

..Column 1....Column 2....Column 3...and so on
=Sheet2!A1, =Sheet2!B1, =Sheet2!C1,
Run Code Online (Sandbox Code Playgroud)

因此,当您选择第一行时,抓住点并向下拖动它会将公式填充到下面的行中,它们会像

=Sheet2!A1, =Sheet2!B1, =Sheet2!C1,
=Sheet2!A2, =Sheet2!B2, =Sheet2!C2,
=Sheet2!A3, =Sheet2!B3, =Sheet2!C3,
Run Code Online (Sandbox Code Playgroud)

因此,当您按CTRL+ 时,A它会选择整个 Sheet1,然后当您按CTRL+ 时,D它会将公式填充到该工作表中的每一行。

我的目标是让脚本做到这一点。

到目前为止我写了

function f5(){
var sheet = SpreadsheetApp.getActiveSheet();
var allData = sheet.getDataRange();
var range = sheet.getRange(1,1,allData.getNumRows(),7)
range.activate();
};
Run Code Online (Sandbox Code Playgroud)

哪个选择了所需的范围,但我认为这不是正确的前进方式。我也在考虑按键模拟,但找不到任何说明可以做到的文档。

swi*_*ood 5

以下内容应该有效:

  var oneRowCopy = sheet.getRange(1,1,1, sheet.getLastColumn());
  var targetRows = sheet.getRange(2,1,sheet.getLastRow()-1, sheet.getLastColumn());
  oneRowCopy.copyTo(targetRows);
Run Code Online (Sandbox Code Playgroud)