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

Moh*_*d H 1 google-sheets google-apps-script google-forms

当我提交 Google 表单时,我想将第 3 行(被视为参考)的格式复制粘贴到由 Google 表格“响应”中的表单提交创建的最后一行。此后我的代码:

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});
}
Run Code Online (Sandbox Code Playgroud)

预先感谢您的支持

Tan*_*ike 5

  • 您想将格式从第 3 行复制到活动工作表的最后一行。
  • 您想CopyFormatting()在提交 Google 表单时运行该函数。
    • 您的脚本是电子表格的容器绑定脚本,它放置了来自 Google 表单的值。
  • 您想使用 Google Apps 脚本来实现这一点。

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

改装要点:

修改后的脚本:

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

从:
RefRow.copyTo(LastRow, {formatOnly: true});
Run Code Online (Sandbox Code Playgroud) 到:
RefRow.copyTo(SheetResponse.getRange(LastRow, 1), {formatOnly: true});
Run Code Online (Sandbox Code Playgroud)

笔记:

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

参考:

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