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