在google应用程序脚本中,制作包含链接表单的电子表格的副本,用于在两个不同的Google免费消费者帐户之间复制时复制链接的表单。那似乎不再是这种情况了。
在下面的示例中,getFormUrl返回null。将链接的表格与电子表格一起复制的处理方法是什么?
// from a 2nd google consumer account, get file by ID of a master
// spreadsheet in a different user account that contains a linked Form
var masterSpreadsheetFile = DriveApp.getFileById('1Jeh4b0BrF4qjogErZpd-bnnoVhLdRj2-hfwXy.....');
// make a copy of the master for this 2nd free google consumer account user
var copiedSpreadsheetFile = masterSpreadsheetFile.makeCopy('myCopiedSpreadsheet', 'MyFolder');
// set the name of the Copied linked Form
var copiedSpreadsheet = SpreadsheetApp.open(copiedSpreadsheetFile);
var copiedFormUrl = copiedSpreadsheet.getFormUrl(); // fails here
var copiedFormId = getIdFromUrl(copiedFormUrl);
var copiedFormFile = DriveApp.getFileById(copiedFormId);
copiedFormFile.setName('myNewCopiedForm');
enter code here
通过同一用户帐户中的GUI复制工作表会复制链接的表单。
答案 0 :(得分:2)
我发现了问题,必须对链接表单的权限处理方式进行一些更改。以前,链接的表单必须继承其链接到的电子表格的权限。现在需要在表单上显式设置这些权限。因此,简单的解决方案是进入表单,“添加协作者”并设置为“有链接可以编辑的任何人”。
通过此更改,当您在两个不同的Google免费消费者帐户之间复制电子表格时,它还会复制链接的表单。