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
Sql 如何更改此google应用程序脚本以根据列日期隐藏工作表列而不是行_Sql_Google Apps Script_Google Sheets - Fatal编程技术网

Sql 如何更改此google应用程序脚本以根据列日期隐藏工作表列而不是行

Sql 如何更改此google应用程序脚本以根据列日期隐藏工作表列而不是行,sql,google-apps-script,google-sheets,Sql,Google Apps Script,Google Sheets,所以我要成为一名称职的程序员还有很长的路要走,但我确实涉猎过谷歌表单脚本 我以前在计时器触发器上运行了一个脚本,根据a列中的日期隐藏行 function min() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = ss.getSheetByName("OLD"); var v = s.getRange("A:A").getValues(); var today = new Date().getTi

所以我要成为一名称职的程序员还有很长的路要走,但我确实涉猎过谷歌表单脚本

我以前在计时器触发器上运行了一个脚本,根据a列中的日期隐藏行

function min() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var s = ss.getSheetByName("OLD");
    var v = s.getRange("A:A").getValues();
    var today = new Date().getTime() - 86400000‬
    for (var i = s.getLastRow(); i > 1; i--) {
        var t = v[i - 1];
        if (t != "") {
            var u = new Date(t);
            if (u < today) {
                s.hideRows(i);
            }
        }
    }
}
function max() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var s = ss.getSheetByName("OLD");
    var v = s.getRange("A:A").getValues();
    var today = new Date().getTime() + 86400000 
    for (var i = s.getLastRow(); i > 1; i--) {
        var t = v[i - 1];
        if (t != "") {
            var u = new Date(t);
            if (u > today) {
                s.hideRows(i);
            }
        }
    }
}
function SHOWROWS() {
  // set up spreadsheet and sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet(), sheets = ss.getSheets();

  for(var i = 0, iLen = sheets.length; i < iLen; i++) {
    // get sheet
    var sh = sheets[i];

    // unhide rows
    var rRows = sh.getRange("A:A");
    sh.unhideRow(rRows);
  }
}
函数min(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getSheetByName(“旧”);
var v=s.getRange(“A:A”).getValues();
var today=new Date().getTime()-86400000‬
对于(var i=s.getLastRow();i>1;i--){
var t=v[i-1];
如果(t!=“”){
var u=新日期(t);
如果(u<今天){
s、 希德罗斯(i);
}
}
}
}
函数max(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getSheetByName(“旧”);
var v=s.getRange(“A:A”).getValues();
var today=新日期().getTime()+86400000
对于(var i=s.getLastRow();i>1;i--){
var t=v[i-1];
如果(t!=“”){
var u=新日期(t);
如果(u>今天){
s、 希德罗斯(i);
}
}
}
}
函数SHOWROWS(){
//建立电子表格和工作表
var ss=SpreadsheetApp.getActiveSpreadsheet(),sheets=ss.getSheets();
对于(变量i=0,iLen=sheets.length;i
这将设置为每晚午夜运行,以便隐藏距离当前日期不到+-1天的所有行

我现在主要通过android应用程序使用此文档,我需要交换输入布局,将日期从行和列中的值移动到相反的位置,值现在在行中,日期在列中,输入垂直值会快得多……但老实说,更多的是了解我做错了什么,这才是真正激励我寻找答案的原因

有人能帮我修改我的旧脚本来处理这个修改过的工作表吗。 我的尝试失败了

function min() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var s = ss.getSheetByName("OLD");
    var v = s.getRange("1:1").getValues();
    var today = new Date().getTime() - 86400000‬
    for (var i = s.getLastColumn(); i > 1; i--) {
        var t = v[i - 1];
        if (t != "") {
            var u = new Date(t);
            if (u < today) {
                s.hidecolumns(i);
            }
        }
    }
}
函数min(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getSheetByName(“旧”);
var v=s.getRange(“1:1”).getValues();
var today=new Date().getTime()-86400000‬
对于(var i=s.getLastColumn();i>1;i--){
var t=v[i-1];
如果(t!=“”){
var u=新日期(t);
如果(u<今天){
s、 hidecolumns(i);
}
}
}
}
电子表格示例:

有两张纸,一张是我的布局的旧版本,称为“旧”,另一张是我想要的新布局,称为“新”


提前感谢所有能够提供帮助的人

此函数隐藏一列,该列的顶行日期小于昨天

   function hideColumnWhenTopRowDateIsBeforeYesterday() {
      var ss=SpreadsheetApp.getActiveSpreadsheet();
      var sh=ss.getSheetByName("Sheet1");
      var rg=sh.getRange(1,1,1,sh.getLastColumn());
      var vA=rg.getValues()[0];
      var yesterday=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-1).valueOf();
      vA.forEach(function(e,i){
        if(new Date(e).valueOf()<yesterday) {
          sh.hideColumns(i+1);
        }
      });       
    }
函数HIDECOLUMNWhentoprowdateisbeforeDayed(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sh=ss.getSheetByName(“Sheet1”);
var rg=sh.getRange(1,1,1,sh.getLastColumn());
var vA=rg.getValues()[0];
var Date=新日期(新日期().getFullYear(),新日期().getMonth(),新日期().getDate()-1).valueOf();
vA.forEach(功能(e,i){

if(new Date(e).valueOf()脚本比我的脚本好得多,但当我需要根据第1行中的日期隐藏列时,它仍然作用于行…我使用了您的版本,但仍然遇到了与我自己尝试时遇到的类似问题…我的更改如下所示。
var rg=sh.getRange(1,1,sh.getLastColumn())
&
我用我的数据对此进行了测试,效果很好。