我正在嘗試創建一個Google工作表腳本,它將獲取名稱列表並將其重新發送到Google表單。我有兩列數據,第一列包含一個人名。第二列包含第一個單元中的人邀請參加聚會的多個單元格。這會產生一個問題,第1列中的名稱可能在第2行,但是如果他們邀請20人,那麼第1列中的空格第3-21行。對你們大多數人來說,這聽起來毫無意義,但我希望能夠按照邀請對象的姓名按字母順序排列表單,並且能夠按照客人姓名的字母順序將其分類爲單獨的表單在第2欄中,同時仍然保留跟蹤他們的人。這是我完成任務的唯一方法。不正確的範圍高度 - Google腳本
我目前堅持寫數組回到表單,我不斷收到「不正確的範圍高度,是1但應該是339」。我已經想出瞭如何成功獲取一組數據,完全按照我想要的方式填充,但似乎無法得到這部分內容。我在這裏搜索並試圖實現我找到的解決方案,但沒有運氣。
這就是我來了這麼遠,它的工作,直到setValues方法(
function inviteSorter() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var current = sheet.getSheets()[0];
var lastRow = current.getLastRow();
var rangeData = current.getRange(2,1,lastRow-1,3);
var numColumns = rangeData.getNumColumns();
// Logger.log(rangeData);
var info = rangeData.getValues();
var Name = {};
// Examines the cell in the first column, if it is empty replaces it with the name from the previous cell.
for (var i = 0; i< info.length; i++){
if (typeof(info[i][0]) == "string" && info[i][0] == ""){
Name[i] = Name[i-1];
} else{
Name[i] = info[i][0];
}
}
var data = []
for (var i = 0; i<lastRow-1; i++){
data.push(Name[i]);
}
var writeRange = current.getRange(2,1,data.length,1);
writeRange.setValues([data]);
希望這有助於。也許你最後一行應該讀取writeRange.setValues(data);但從你學習如何編程的東西的外觀來看,這不是一個獲得幫助的好地方。祝你好運。 – eddyparkinson
我承認我對這一切有一個基本的瞭解,但對於我可以實現我最想要的東西的概念已經足夠了解了。我通常掛在我看不到正確方式的東西上。我知道我需要將數組「轉置」爲列格式,但我沒有看到明顯的解決方案。 我原來的代碼已經是你的建議,並且我得到了一個數組錯誤的對象。我的代碼可以工作,除非我試圖將一行數據寫入列。就像我說的,我理解了這些概念,有時候我會掛斷電話。 – arhubart2
謝謝你的建議。對不起,如果這種情況出現敵意,重新閱讀它有點類似。 – arhubart2