0

我在与谷歌片脚本的问题复制单元格值,根据病情

我在教育工作,基本上我们有一些老师想有一个表单谁在需要将学生转介给管理员时使用。

所以,我们有一个Google表单设置,它的答案是填充表单中我们的“主”标签。然后我们为每个管理员设置了一个标签,我们的想法是我们可以根据“管理员分配”框(下面的代码中的ColumnT)的内容编写一个移动数据的函数。

第一位I需要得到的功能是处理该部分的代码,这是我已经能够拿出(详细的注释,这样就可以看到希望我的思维过程):

//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有点生疏,这是我第一次为应用程序脚本编写一些东西。因此,这possilble我要对此都错了:)

任何建议将受到欢迎

回答

2

getSheetValues返回的方法“的对象[] [] - 值的二维数组”。所以,它的条目应该被访问为values[i][j],其中i是从该范围的左上角的行偏移,并且j是列偏移。特别是,你的米兰达比较应该是

if (columnT[i][0] === "Miranda") 

另注:表中的行数和列数由1开始,不像JavaScript数组索引。在getSheetValues中传递(0, 20, 0, -1);表示您可能会错计事物。

最后,我建议使用.getRange(...).getValues()而不是getSheetValues()。一方面,可以通过A1符号来getRange,像

var valuesT = sheet.getRange("T1:T").getValues(); 

得到列T.所有值如果它是最好在底部未取了一堆空单元格,可以使用

var lastRow = sheet.getLastRow(); 
var valuesT = sheet.getRange("T1:T" + lastRow).getValues(); 
+0

这是非常有用的,谢谢getValues是一个更好的方法:) – Jensen010

+0

我一直在摆弄一个方法,使包含for循环,活动行匹配字符串的行。然后从该行选择一些单元格值移动到另一个表单。我将一些代码记下来,将行内容存储在一个数组中,然后将它们的索引转换为行号。但我仍然认为我的缺点。我会在早上编辑我的问题,以反映它现在的位置。 – Jensen010