【问题标题】:Google apps script - Importing sheet values from another sheetGoogle 应用程序脚本 - 从另一个工作表导入工作表值
【发布时间】:2016-12-31 22:23:11
【问题描述】:

我想为 Google 表格编写一个有条件的 Google 应用程序脚本,我有点费劲。该工作表有 5 个选项卡。基本上,工作表从谷歌表单中获取数据。客户填写表格,它会填充我们相关工作表的“主”选项卡。

这是我挂断电话的地方: 该表格用于教师将学生推荐给特定的管理员。控制表单的人需要能够将特定的数据行分配给特定的管理员,每个管理员都设置了自己的选项卡。他们通过从下拉列表中选择要将行分配给哪个管理员来执行此操作。

因此,如果将第 2 行分配给“Miranda”,某些数据将被移至“Miranda”标签。为了争论,假设该特定行的 D 列和 E 列将移至“米兰达”选项卡的 A 列。

这是我到目前为止的想法:

function importStudent() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var master_sheet = ss.getSheetByName("Master");
    var miranda_sheet = ss.getSheetByName("Miranda");
    var columnT = master_sheet.getRange("T1:T").getValues();
    var columnD = master_sheet.getRange("D1:D").getValues();
    var columnE = master_sheet.getRange("E1:E").getValues();
        for(var i = 0; i <= columnT; i++) {
            if (columnT[i][0] === "Miranda") {
                var miranda_row = (miranda_sheet.getLastRow() + 1);
                var active_row = SpreadsheetApp.setActiveRange(columnT[i].getRow());
                var selectionFirst = columnD.setActiveRange(active_row:columnD);
                var selectionLast = columnE.setActiveRange(active_row:columnE);
                var fullName = selectionFirst + " " + selectionLast;
                fullName.copyValuesToRange(miranda_sheet, 1, 1, miranda_row, miranda_row);
            }
        }
}

以下代码已损坏,我正在寻找一些指导以使其正常工作。马上,我知道我至少有两个问题:1 变量太多,2 我不确定是否可以将变量作为参数传递给 setActiveRange() 类。所以,我的问题:

我怎样才能清理这个?为了让它发挥作用,我应该使用什么(类?)?

PS - 在 JavaScript 方面,我仍然认为自己是新手。我有知识,但实际应用是我还在学习的东西:)

【问题讨论】:

    标签: javascript google-apps-script google-sheets


    【解决方案1】:

    不确定您是否需要使用脚本来执行您正在尝试的操作。为什么不使用查询公式?

    例如:

    =query(MasterData!:A:E,"SELECT D,E WHERE A = 'Miranda'",0)

    查询here有一些帮助。您还可以跨电子表格查询。也就是说,您可以为 Miranda 分配她自己的电子表格,该电子表格来自您的主数据。

    如果您需要更多帮助,请与我分享一个示例电子表格数据。

    【讨论】:

    • 我相信范围需要包括 D 和 E 列,如果它们是显示的:=query(MasterData!:A:E,"SELECT D,E WHERE A = "Miranda"",0)
    • 我曾考虑过使用查询,但不是每个教师每次要导入时都必须输入查询吗?此外,这是他们想要的一些功能的一小部分,但它是基础。所有其他的东西都将很容易实现,但我认为使用他们可以从菜单中选择的功能会更好
    • 我将您的工作表复制到here。请参阅 Miranda 选项卡和单元格 A2 我在其中添加了一个公式。为了回答您关于更新查询的问题,查询会实时运行,并且在查询中对数据所做的更改会立即更新。
    • 我可能只是切换到这个,以及我需要的其他功能的类似查询,谢谢!
    猜你喜欢
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 2020-01-01
    相关资源
    最近更新 更多