将脚本应用于第二个 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
我不知道如何编码。我曾经在 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');
或者你可以通过索引
得到一个sheetvar 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