将脚本应用于第二个 sheet

Issue applying script to second sheet

我不知道如何编码。我曾经在 HTML 上制作网站,所以我的知识有限。我拼凑并更改现有代码。我在 Excel VBA 上表现不错,但随后需要开始使用 google 张。所以,就是说...

我有一个包含两张纸的电子表格,'MIS' 和 'Admin'。我有一堆代码是一个公式,它根据每行匹配的两个下拉条件中的多少来分配一个值(1,2,3 ...)(如果匹配条件 #1,则为 1,如果匹配条件 #,则为 2) 2,如果两者都匹配则为 3)。然后代码隐藏所有内容,并仅取消隐藏数字符合条件的内容。我需要它既干净又快速,适用于几乎不会使用计算机的人。

问题是,代码只适用于第一页。我尝试使用相同的代码,尝试修改代码,然后尝试在大约 50 万个位置插入 'Admin'。请帮忙。管理功能是我最近的尝试。这是我在十几个地方插入 'Admin' 的地方。此外,如果您看到我正在使用的任何东西正在减慢代码速度,我也可以使用一些帮助。有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);   
        } 
    }
}

这一行是你的 'only the first sheet' 问题,你有点结合了定义 sheet:

的两种方法
var sheet = ss.getSheets('Admin')[0];

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

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

或者你可以通过索引

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

最后,您可以获取传播sheet 中的所有 sheet 并将它们列在这样的数组中:

var sheets = ss.getSheets();

然后在这个数组中使用你需要的 sheet 的索引,如下所示:

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