![](/img/trans.png)
[英]Google Apps Script - TypeError: Cannot read property “0” from undefined
[英]Google Apps Script - Cannot read property “5” from undefined
嘗試將任務標記為已關閉后隱藏Google工作表中的行,然后將值“ 1”寫入單元格,以便下次函數運行時可以忽略隱藏的行。
代碼在網上失敗了,
var status = range[i][5];
運行調試器時,可以看到它已從工作表中讀取了正確的值。 它還顯示了要隱藏的正確行數組。
感謝任何幫助,其余代碼如下。
function HideClosed() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form responses 5");
var numRows = sheet.getLastRow();
var lastCol = sheet.getLastColumn();
var startRow = 2;
var range = sheet.getRange(2, 1, numRows-startRow,lastCol).getValues(); //Get all values except the header rows
var rowsToHide = [];
for (var i = 2; i < numRows; i++){
var status = range[i][5]; // checks column 6 for status
var hidden = range[i][34]; // checks column 35 for hidden status
if (status == "Closed" && hidden != "1") { // checks for Closed jobs //that have not been hidden yet
rowsToHide.push(i+1);
}
}
var L = rowsToHide.length;
for (i = L ; i>0; i--){
sheet.hideRows(rowsToHide[i-1]);
sheet.getRange(rowsToHide[i][34]).setValue("1"); // writes 1 to column 35 after hiding //row
}
}
@Cooper-是的,那很好,謝謝。
但是,這非常慢,如果沒有超時,則需要3分鍾才能隱藏15行。 從這里閱讀其他線程來看,這似乎是一個足夠普遍的問題。
今天對其進行了一些更改以嘗試加快速度,但是最后一行出現了“找不到函數隱藏行錯誤”信息。 其他一切在調試器上看起來都不錯。
function HideClosedWN() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form responses 5");
var numRows = sheet.getLastRow();
var lastCol = sheet.getLastColumn();
var startRow = 2;
var range = sheet.getRange(2, 1, numRows-
startRow,lastCol).getValues(); //Get all values except the header rows
var rowsToHide = [];
for (var i=0; i<numRows-startRow; i++){
var status=range[i][5]; // checks column 6 for status
var hidden=range[i][34]; // checks column 35 for hidden status
if (status == "Closed" && hidden == 1){
rowsToHide.push(i+1);
}
}
sheet.getRange(2,1,rowsToHide.length,lastCol).hideRows(2,rowsToHide.length); }
我認為這可能會運行:
function HideClosed()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form responses 5");
var numRows = sheet.getLastRow();
var lastCol = sheet.getLastColumn();
var startRow = 2;
var range = sheet.getRange(2, 1, numRows-startRow,lastCol).getValues(); //Get all values except the header rows
var rowsToHide = [];
for (var i=0;i<numRows-startRow-1;i++)
{
var status=range[i][5]; // checks column 6 for status
var hidden=range[i][34]; // checks column 35 for hidden status
if (status=="Closed" && hidden!=1)
{
rowsToHide.push(i+1);
}
}
var L=rowsToHide.length;
for (i=rowsToHide.length-1; i>=0;i--)
{
sheet.hideRows(rowsToHide[i]);
sheet.getRange(rowsToHide[i],35).setValue(1); // writes 1 to column 35 after hiding //row
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.