【问题标题】:Google Sheet - App Script To Hide/Show Sheets Not Working谷歌表格 - 隐藏/显示表格的应用程序脚本不起作用
【发布时间】:2018-01-02 02:06:47
【问题描述】:

新年快乐。

无法正确触发某些代码。我正在处理一个预算表,其中有一个概览表,其中信息是从其他大多数表中提取的,但是由于每个月都有单独的表以及更多的表,因此尝试跟踪它会有点忙所有的床单。我开始手动隐藏/显示工作表以使事情变得更容易,但是一旦我能够在概览页面上自动隐藏/显示月份,我认为最好将工作表也自动化。这使我得到了我目前拥有的代码,如下所示:

function onEdit(e) {

var sheet = e.source.getActiveSheet();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var January = ss.getSheetByName("January");
var February = ss.getSheetByName("February");
var March = ss.getSheetByName("March");
var April = ss.getSheetByName("April");
var May = ss.getSheetByName("May");
var June = ss.getSheetByName("June");  
var July = ss.getSheetByName("July");
var August = ss.getSheetByName("August");
var September = ss.getSheetByName("September");
var October = ss.getSheetByName("October");
var November = ss.getSheetByName("November");
var December = ss.getSheetByName("December");

  if (e.range.getA1Notation() !== 'A29' || sheet.getName() !== 'Overview') return;
switch (e.value) {
case 'All':
    sheet.showColumns(3, 24)
    January.showsheet();
    February.showsheet();
    March.showsheet();
    April.showsheet();
    May.showsheet();
    June.showsheet();
    July.showsheet();
    August.showsheet();
    September.showsheet();
    October.showsheet();
    November.showsheet();
    December.showsheet();    
    break;
case 'January':
    sheet.hideColumns(3, 24);
    sheet.showColumns(3, 2);
    January.showsheet();
    February.hidesheet();
    March.hidesheet();
    April.hidesheet();
    May.hidesheet();
    June.hidesheet();
    July.hidesheet();
    August.hidesheet();
    September.hidesheet();
    October.hidesheet();
    November.hidesheet();
    December.hidesheet();
    break;
case 'February':
    sheet.hideColumns(3, 24);
    sheet.showColumns(3, 4);
    January.hidesheet();
    February.showsheet();
    March.hidesheet();
    April.hidesheet();
    May.hidesheet();
    June.hidesheet();
    July.hidesheet();
    August.hidesheet();
    September.hidesheet();
    October.hidesheet();
    November.hidesheet();
    December.hidesheet();
    break;
case 'March':
    sheet.hideColumns(3, 24);
    sheet.showColumns(5, 4); 
    January.hidesheet();
    February.hidesheet();
    March.showsheet();
    April.hidesheet();
    May.hidesheet();
    June.hidesheet();
    July.hidesheet();
    August.hidesheet();
    September.hidesheet();
    October.hidesheet();
    November.hidesheet();
    December.hidesheet();
    break;
case 'April':
    sheet.hideColumns(3, 24);
    sheet.showColumns(7, 4); 
    January.hidesheet();
    February.hidesheet();
    March.hidesheet();
    April.showsheet();
    May.hidesheet();
    June.hidesheet();
    July.hidesheet();
    August.hidesheet();
    September.hidesheet();
    October.hidesheet();
    November.hidesheet();
    December.hidesheet();
    break;
case 'May':
    sheet.hideColumns(3, 24);
    sheet.showColumns(9, 4); 
    January.hidesheet();
    February.hidesheet();
    March.hidesheet();
    April.hidesheet();
    May.showsheet();
    June.hidesheet();
    July.hidesheet();
    August.hidesheet();
    September.hidesheet();
    October.hidesheet();
    November.hidesheet();
    December.hidesheet();
    break;
case 'June':
    sheet.hideColumns(3, 24);
    sheet.showColumns(11, 4); 
    January.hidesheet();
    February.hidesheet();
    March.hidesheet();
    April.hidesheet();
    May.hidesheet();
    June.showsheet();
    July.hidesheet();
    August.hidesheet();
    September.hidesheet();
    October.hidesheet();
    November.hidesheet();
    December.hidesheet();
    break;
case 'July':
    sheet.hideColumns(3, 24);
    sheet.showColumns(13, 4); 
    January.hidesheet();
    February.hidesheet();
    March.hidesheet();
    April.hidesheet();
    May.hidesheet();
    June.hidesheet();
    July.showsheet();
    August.hidesheet();
    September.hidesheet();
    October.hidesheet();
    November.hidesheet();
    December.hidesheet();
    break;
case 'August':
    sheet.hideColumns(3, 24);
    sheet.showColumns(15, 4); 
    January.hidesheet();
    February.hidesheet();
    March.hidesheet();
    April.hidesheet();
    May.hidesheet();
    June.hidesheet();
    July.hidesheet();
    August.showsheet();
    September.hidesheet();
    October.hidesheet();
    November.hidesheet();
    December.hidesheet();
    break;
case 'September':
    sheet.hideColumns(3, 24);
    sheet.showColumns(17, 4); 
    January.hidesheet();
    February.hidesheet();
    March.hidesheet();
    April.hidesheet();
    May.hidesheet();
    June.hidesheet();
    July.hidesheet();
    August.hidesheet();
    September.showsheet();
    October.hidesheet();
    November.hidesheet();
    December.hidesheet();
    break;
case 'October':
    sheet.hideColumns(3, 24);
    sheet.showColumns(19, 4); 
    January.hidesheet();
    February.hidesheet();
    March.hidesheet();
    April.hidesheet();
    May.hidesheet();
    June.hidesheet();
    July.hidesheet();
    August.hidesheet();
    September.hidesheet();
    October.showsheet();
    November.hidesheet();
    December.hidesheet();
    break;
case 'November':
    sheet.hideColumns(3, 24);
    sheet.showColumns(21, 4); 
    January.hidesheet();
    February.hidesheet();
    March.hidesheet();
    April.hidesheet();
    May.hidesheet();
    June.hidesheet();
    July.hidesheet();
    August.hidesheet();
    September.hidesheet();
    October.hidesheet();
    November.showsheet();
    December.hidesheet();
    break;
case 'December':
    sheet.hideColumns(3, 24);
    sheet.showColumns(23, 4); 
    January.hidesheet();
    February.hidesheet();
    March.hidesheet();
    April.hidesheet();
    May.hidesheet();
    June.hidesheet();
    July.hidesheet();
    August.hidesheet();
    September.hidesheet();
    October.hidesheet();
    November.hidesheet();
    December.showsheet();
    break;
}
}

由于某种原因,它不能正常工作。不知道我做错了什么。在编码方面我不是很有经验,所以我敢肯定这可能是超级简单的事情。这是我使用完整代码制作的文档的空白副本的链接。

Script Test - Please Help

我愿意接受建议,在此先感谢。

【问题讨论】:

  • 脚本不完整。它是一个 onEdit(e) 函数吗?
  • 你是对的,我错误地把第一行代码遗漏了,但它在文档的脚本上。我的错。

标签: google-apps-script google-sheets


【解决方案1】:

有错别字。而不是showsheet(),它应该是showSheet()。同理,应该是hideSheet(),而不是hidesheet()

【讨论】:

  • 解决了,非常感谢!知道这很简单。
猜你喜欢
  • 1970-01-01
  • 2020-04-02
  • 2022-10-17
  • 2020-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多