自动创建电子表格,由下拉列表中的新选择触发



我正在尝试自动为重症监护室的医生分发教学反馈。目前,我们正在将反馈输入到Google表单中,然后将其填充到电子表格中,然后分发。

我使用以下功能为每个人的反馈创建单独的表格,然后随着他们进行更多会话,这些表格将在全年不断更新,这意味着我只需要与每个人共享一次初始链接。

=QUERY(IMPORTRANGE("sheet_url", "Form Response 1!A1:G159"(, "选择*其中 Col3='presenter_name'"(

我正在努力自动化的步骤是创建一个新的电子表格,当使用下拉列表中的新选项(即新老师出现(时。理想情况下,这也将在标题中包含他们的名字。

任何帮助将不胜感激!

如果每个演示者都有自己的电子表格,并且 如果每个电子表格都有一个可以与演示者相关的名称,并且 如果电子表格保存在特定文件夹中, 可以创建电子表格名称数组(使用 DriveApp(。

如果演示者的名称不能与数组中的电子表格名称相关, 必须制作一个新的电子表格。

像这样的东西?

function BlaBlaBla(){
var presenterName = "ABCDE"; //get this with appscript out of the spreadsheet
var specificFolderId = "XXXX"; //id of the specific folder
var ssFiles = DriveApp.getFolderById(specificFolderId).getFiles();
var ssFileNames = [];
while (ssFiles.hasNext()) {
var ssFile = ssFiles.next();
var ssFileName = ssFile.getName();
ssFileNames.push(ssFileName);
}
var presenterNamePlus = "RMH CCU Teaching Feedback " + presenterName;
if(ssFileNames.indexOf(presenterNamePLus) == -1){
SpreadsheetApp.create(presenterNamePlus);
//move new spreadsheet to specific folder
}
}

在应用程序脚本中,您可以在触发器上运行脚本

在您的情况下,onEdit触发器和可安装的触发器onFormSubmit会更合适

绑定到目标电子表格的表单提交触发器

  • 检索与感兴趣的下拉问题对应的项目响应并评估其值
  • if语句中,指定如果值等于感兴趣的值,则应创建新电子表格

"编辑"触发器

  • 您可以指定要监视的列和要监视的值
  • 如果指定列中的单元格已更改为感兴趣的下拉选项(例如"新教师介绍"(,则将满足if语句;

  • 在这两种情况下,触发器都可以调用一个 functio,该函数将使用编辑的下拉列表(例如名称((如果是 onFormSubmit 触发器,则为最后一行(从行的其他单元格中检索数据,并使用感兴趣的单元格中指定的名称创建一个电子表格

样本:

function onEdit(e) {
//modify the column number if necessary
if (e.range.getColumn() == 3 && e.value == "a new teacher presents"){
var row = e.range.getRow();
createNewSpreadsheet(row);
}
}

function BindOnSubmitToMe(e){
// modify the question number if necessary
if (e.values[2] == "a new teacher presents"){
var row = e.range.getRow();
createNewSpreadsheet(row);
}
}

function createNewSpreadsheet(row){
Logger.log("create");
var nameColumn = 1;
var name = SpreadsheetApp.getActive().getActiveSheet().getRange(row, nameColumn).getValue();
SpreadsheetApp.create(name);
}

最新更新