将脚本应用于第二张表

时间:2015-03-03 21:09:56

标签: google-apps-script google-docs

我不知道如何编码。我用来制作HTML网站,所以我的知识有限。我拼凑并改变现有的代码。我在Excel VBA上得体,但随后需要开始使用谷歌表。所以,那说......

我有一张包含两张纸的电子表格,' MIS'和'管理员'我有一堆代码,根据每行匹配的两个下拉标准中的多少个来分配值(1,2,3 ......)(如果匹配条件#1则为1,如果匹配条件,则为2)如果两者都匹配,则为2和3)。然后代码会隐藏所有内容,并且只取消那些符合条件的数字。我需要这个干净,快速,对于那些几乎不能使用电脑的人来说。

问题是,代码仅适用于第一页。我尝试使用相同的代码,尝试修改代码,然后我尝试插入“管理员”#39;在大约五十万个地方。请帮忙。管理功能是我最近的尝试。这是我插入“管理员”的地方。在十几个地方。此外,如果你看到我正在使用的任何东西会减慢代码的速度,我也可以使用它。有6个函数,它们使用相同的代码基本上做同样的事情但对应于不同的数字组合。有问题的是下面的内容。

function Admin(){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheets('Admin')[0];
    var range = sheet.getRange(1, 1, sheet.getLastRow());

    sheet.hideRows(8,sheet.getLastRow());

    var values = range.getValues();

    for (var i=0; i<values.length; i++){
        if(values[i][0] === 3){
            sheet.showRows(i+1);   
        } 
    }
}

1 个答案:

答案 0 :(得分:0)

这一行是您唯一的第一张&#39;问题是,您可以将两种定义工作表的方法结合起来:

var sheet = ss.getSheets('Admin')[0];

您可以使用.getSheetByName()方法按名称获取特定工作表,即

var adm_sheet = ss.getSheetByName('Admin');
var mis_sheet = ss.getSheetByName('MIS');

或者您可以按索引获取工作表

var adm_sheet = ss.getSheets()[0]; //returns first sheet
var mis_sheet = ss.getSheets()[1]; //returns second sheet

最后,您可以获取电子表格中的所有工作表,并将其列在如下数组中:

var sheets = ss.getSheets();

然后使用此数组中所需的工作表索引,如下所示:

sheets[0] //the first sheet
sheets[1] //the second sheet