[英]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();
}
我的代码在脚本编辑器中(从电子表格顶部菜单中选择工具,然后在脚本编辑器中)
下面的代码工作得很好,您错过了正确获取文本值并可以使用范围的方法。
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.