提交 Gforms 时复制上一行的格式

Copy format of previous row when Gforms is submitted

当我提交 Google 表格时,我想将第 n°3 行(作为参考)的格式复制粘贴到 google [=] sheet "responses"。 以下是我的代码:

function CopyFormatting() {
//Déclaration des variables
var SheetResponse = SpreadsheetApp.getActiveSheet(); //Sheet of forms response
var LastRow = SheetResponse.getLastRow(); //last row of sheet (n)
var RefRow = SheetResponse.getRange("3:3"); //Row n°3 considered as reference

//Copy formatting to last row from reference row
RefRow.copyTo(LastRow, {formatOnly: true});
}

提前感谢您的支持

  • 您想将格式从第 3 行复制到活动 sheet 上的最后一行。
  • 您想在提交 Google 表单时 运行 函数 CopyFormatting()
    • 您的脚本是 Spreadsheet 的容器绑定脚本,它将 Google 表单中的值放入其中。
  • 您想使用 Google Apps 脚本实现此目的。

如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。

修改点:

修改后的脚本:

当您的脚本修改时,请修改如下。

从:
RefRow.copyTo(LastRow, {formatOnly: true});
到:
RefRow.copyTo(SheetResponse.getRange(LastRow, 1), {formatOnly: true});

注:

  • 如果要将格式复制到上一行的下一行,请将getRange(LastRow, 1)修改为getRange(LastRow + 1, 1)
  • 在您的脚本中,使用了 SpreadsheetApp.getActiveSheet()。所以在这种情况下,使用第一个选项卡。如果你想 运行 脚本到 Spreadsheet 中的特定选项卡,请使用 SpreadsheetApp.getActiveSpreadsheet().getSheetByName("### sheet name ###") 而不是那个。
  • 如果要将最后一行上一行的格式复制到最后一行,请修改为var RefRow = SheetResponse.getRange(SheetResponse.getLastRow() - 1, 1, 1, SheetResponse.getLastColumn())

参考文献:

如果我误解了您的问题而这不是您想要的结果,我深表歉意。