0

每次我尝试这个时都会出错,这就是我正在使用的。我收到此错误:

TypeError: Cannot find function hideColumns in object Sheet,Sheet,Sheet,Sheet,Sheet."

我对脚本不是很熟悉,似乎无法让它工作。

function Hide() {
  // get active spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();

    // look at all sheets
  var sheet = ss.getSheets();

  // get data
  var data = ss.getDataRange();

  // get number of columns
  var lastCol = data.getLastColumn()+1;

  Logger.log(lastCol);

  // itterate through columns
  for(var i=1; i<lastCol; i++) {
     if(data.getCell(1, i).getValue()[0] == '*') {
        sheet.hideColumns(i);
     }
  }
}

有人可以帮我吗?

4

1 回答 1

0

我假设,您正在使用此参考。我想,您想要执行以下操作:

  1. 迭代数据范围内的所有列。
  2. 如果列的第一行的值等于*,则隐藏该列。

我不熟悉 Google Apps 服务,但我认为您的代码应如下所示:

function Hide() {
  // get active spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();

    // look at all sheets
  //var sheet = ss.getSheets();

  // get data
  var data = ss.getDataRange();

  //get the sheet this range belongs to.
  var sheet = data.getSheet();

  // get number of columns
  var lastCol = data.getLastColumn()+1;

  Logger.log(lastCol);

  // itterate through columns
  for(var i=1; i<lastCol; i++) {
     if(data.getCell(1, i).getValue()[0] == '*') {
        sheet.hideColumns(i);
     }
  }
}

由于.getSheets返回一个对象数组Sheet因此您不能调用该函数。

于 2013-05-15T19:13:59.877 回答