首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据条件将单元格值从一个google工作表复制到另一个

根据条件将单元格值从一个google工作表复制到另一个
EN

Stack Overflow用户
提问于 2016-12-29 23:51:58
回答 1查看 2K关注 0票数 0

我对的脚本有个问题

我在教育部门工作,基本上我们有一些老师,他们希望有一个表格,当他们需要把学生推荐给管理员时。

因此,我们设置了一个Google表单,它的答案填充了我们的“主”选项卡。然后,我们为每个管理员设置了一个选项卡,其思想是我们可以编写一个基于“管理员指定的”框(下面代码中的ColumnT)内容移动数据的函数。

我需要实现功能的第一步是处理该部分的代码,下面是我能够提出的内容(大量注释,希望您能够看到我的思考过程):

代码语言:javascript
复制
//Get the active spreadsheet and store in a variable
function importStudName() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
//Get"Master" spreadsheet and store in a variable
var master_sheet = ss.getSheetByName("Master");
//Get "Miranda" spreadhseet and store in a variable
var miranda_sheet = ss.getSheetByName("Miranda");
//Column T
var columnT = master_sheet.getSheetValues(0, 20, 0, -1);
//Column D
var columnD = master_sheet.getSheetValues(0, 4, 0, -1);
//Column E
var columnE = master_sheet.getSheetValues(0, 4, 0, -1);
//Loop through Column T and find every value that = "Miranda"
    for(var i = 0; i <= columnT; i++) {
        if (columnT[i] === "Miranda") {
          //Set a variable to hold the last row in the "Miranda" sheet
            var miranda_row = (miranda_sheet.getLastRow() + 1);
          //Make the row with the "Miranda" string active

          //Set a variable that concatenates the Column D and Column E variables (from "master" sheet) into a string

          //Copy the new variable to the "Miranda" sheet
            .copyValuesToRange(miranda_sheet, 1, 1, miranda_row, miranda_row);
    }
  }
}

大多数情况下,我似乎找不出在其中选择包含"Miranda“关键字的行的位置。一旦我放下了它,我认为这只是一个使用.getRange()函数从columnD和columnE中提取值的问题。

我的JavaScript有点生疏,这是我第一次为应用程序脚本编写东西。所以这很可能是我做错了

欢迎提出任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-30 01:38:04

方法getSheetValues返回"Object -一个二维的值数组“。因此,应该以values[i][j]的形式访问它的条目,其中i是范围左上角的行偏移量,而j是列偏移量。特别是,你的米兰达比较应该是

代码语言:javascript
复制
if (columnT[i][0] === "Miranda")

另一个注意事项:工作表中的行号和列号以1开头,与JavaScript数组索引不同。在(0, 20, 0, -1);中传递getSheetValues表示您可能计算错了。

最后,我建议使用.getRange(...).getValues()而不是getSheetValues()。首先,您可以将A1符号传递给getRange,如

代码语言:javascript
复制
var valuesT = sheet.getRange("T1:T").getValues();

若要获取T列中的所有值,最好不要从底部提取一堆空单元格,可以使用

代码语言:javascript
复制
var lastRow = sheet.getLastRow();
var valuesT = sheet.getRange("T1:T" + lastRow).getValues();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41388816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档