簡體   English   中英

Javascript HideRows(Google表格腳本編輯器)

[英]Javascript HideRows (Google Sheet Script Editor)

我試圖在Google spedsheet中隱藏特定工作表的所有行(spreasheet中包含其他工作表)。 要隱藏的行是兩個prompt命令(first_r和last_r)給出的兩個整數之間的ID。

當我單擊按鈕hide ,出現兩個提示窗口,但隨后出現一個“ Finished script”,但該行未被隱藏。
這是我的代碼

function hide(){
var ui = SpreadsheetApp.getUi();
var first_r_str = ui.prompt('First row to hide');
var last_r_str = ui.prompt("Last row to hide");
 var first_r = parseInt(first_r_str);
 var last_r = parseInt(last_r_str);   

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('MYSheet');

for (i = first_r; i <= last_r; i++){
sheet.hideRows(i); 
}

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Hide Rows', 'hide')
      .addToUi();
}

我的代碼在腳本編輯器中(從電子表格頂部菜單中選擇工具,然后在腳本編輯器中)

下面的代碼工作得很好,您錯過了正確獲取文本值並可以使用范圍的方法。

來源Google Apps腳本

function hide(){
var ui = SpreadsheetApp.getUi();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var startRow = ui.prompt('enter first').getResponseText();
var endRow = ui.prompt('enter last').getResponseText();
var range = sheet.getRange(startRow, 1, endRow);
ss.hideRow(range);

}

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Hide Rows', 'hide')
      .addToUi();
}

正如MGA在他的示例中所示,主要問題是您沒有從答案中提取文本。

由於您具有連續范圍,因此您應該對hideRows進行一次調用而不是循環調用,這樣效率更高。

function hide(){
  var ui = SpreadsheetApp.getUi();
  var first_r_str = ui.prompt('First row to hide').getResponseText();
  var last_r_str = ui.prompt("Last row to hide").getResponseText();
  var first_r = parseInt(first_r_str);
  var last_r = parseInt(last_r_str);   

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet1');

  sheet.hideRows(first_r, last_r - first_r + 1); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM