Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 下拉可基于下拉菜单隐藏行_Google Apps Script_Google Sheets_Triggers - Fatal编程技术网

Google apps script 下拉可基于下拉菜单隐藏行

Google apps script 下拉可基于下拉菜单隐藏行,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,在Google工作表中,当我在R4中的下拉列表显示BLS时,我想隐藏第5行到第31行,如果R4为空白或显示ALS,则显示这些单元格 以下是我最近的一次尝试: function onEdit(e) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sh = ss.getSheetByName("Shee1"); var rg = sh.getDataRange(); var vA = rg.getValues(); va

在Google工作表中,当我在
R4
中的下拉列表显示BLS时,我想隐藏第5行到第31行,如果
R4
空白或显示ALS,则显示这些单元格

以下是我最近的一次尝试:

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheetByName("Shee1");
  var rg = sh.getDataRange();
  var vA = rg.getValues();
  var R4 = sh.getRange("R4").getValue();
  for (var i = 0; i < vA.length; i++) {
    var row = i + 1;
    switch (R4) {
      case "BLS":
        if (row >= 5 && row <= 31) {
          sh.hideRows(row);
        }
        break;
      case "ALS":
        if (row >= 4 && row <= 32) {
          sh.showRows(row);
        }
        break;
      default:
    }
  }
}
函数onEdit(e){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getSheetByName(“Sheet1”);//输入工作表名称
var row=s.getRange('R:R').getValues();
//输入包含文本“隐藏”和“取消隐藏”的列字母
s、 showRows(1,s.getMaxRows());
对于(vari=0;i
您能告诉我们目前为止的情况吗?这是最近的一次尝试:函数onEdit(e){var ss=SpreadsheetApp.getActiveSpreadsheet();var sh=ss.getSheetByName(“Shee1”);var rg=sh.getDataRange();var vA=rg.getValues();var R4=sh.getRange(“R4”).getValue();用于(var i=0;i=5&&row=4&&row我也尝试过这个方法,它指向我录制的两个不同的宏,但它使屏幕变得疯狂,每当编辑其他内容时就会跳转函数onEdit(){if(SpreadsheetApp.getActiveSheet().getRange('R4').getValue()=“BLS”)BLS();//如果(SpreadsheetApp.getActiveSheet().getRange('R4').getValue()==“ALS”){ALS();//启动脚本}请将代码放入提供的答案区域,只选择代码并按控制键k。如果编辑的单元格是“触发单元格”,则只需使用代码保护来执行
BLS()
ALS()
函数,R4。否则,您可能不想激活这些函数。请参阅我的答案,了解如何向编辑触发函数添加代码保护。使用条件格式解决了我的问题。效果很好。将此公式放入单元格:=if($R$4=“BLS”,“hide”,“unhide”)。
function onEdit(){ 
  if(SpreadsheetApp.getActiveSheet().getRange('R4').getValue() == "BLS") BLS(); // Launches the script
  if(SpreadsheetApp.getActiveSheet().getRange('R4').getValue() == "ALS") ALS(); // Launches the script
}
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("Sheet1");           // Enter sheet name
var row = s.getRange('R:R').getValues(); 
// Enter column letter that has the      text "hide" and  "unhide"

s.showRows(1, s.getMaxRows());
for(var i=0; i< row.length; i++){ if(row[i] == 'hide') { s.hideRows(i+1, 27); } 
else if(row[i] == 'unhide'){ s.unhideRow(ss.getDataRange()); } 
}
}