Google apps script GoogleSheet脚本按日期隐藏列
我实际上是在尝试完全按照中所做的操作,但是使用列而不是行。当我在那里按原样运行脚本时,它工作得很好。但是,由于某种原因,仅仅将所有对列的引用切换到行(反之亦然)对我来说是行不通的,我也不知道出了什么问题 以下是我的参考资料: 函数onOpen() { var ui=SpreadsheetApp.getUi(); ui.createMenu(“我的工具”) .addItem('Hide Columns','hideColumnsDate') .addToUi(); } 函数hideColumnsDate(行) { 变量行=(typeof(row)!='undefined')?行:'1'; var日=86400000; var today=new Date().getTime(); var rng=SpreadsheetApp.getActiveSheet().getRange(行+':'+行); var rngA=rng.getValues(); 对于(变量i=0;iGoogle apps script GoogleSheet脚本按日期隐藏列,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我实际上是在尝试完全按照中所做的操作,但是使用列而不是行。当我在那里按原样运行脚本时,它工作得很好。但是,由于某种原因,仅仅将所有对列的引用切换到行(反之亦然)对我来说是行不通的,我也不知道出了什么问题 以下是我的参考资料: 函数onOpen() { var ui=SpreadsheetApp.getUi(); ui.createMenu(“我的工具”) .addItem('Hide Columns','hideColumnsDate') .addToUi(); } 函数hideColumnsD
当您的脚本被修改时,这次修改怎么样?请认为这只是几个修改中的一个 修改点:
- 在您的情况下,从范围
中检索到的值是SpreadsheetApp.getActiveSheet().getRange(row+':'+row)
。[[column1,column2,column3,,,,]]
- 在这种情况下,for循环的长度为
rngA[0]。长度为
- 为了检索列的值,请将
修改为rngA[i][0]
rngA[0][i]
- 在这种情况下,for循环的长度为
for(变量i=0;i7))
致:
for(var i=0;i7))
注:
- 在您的情况下,与其他模式一样,您也可以使用以下修改。
- 将
修改为var-rngA=rng.getValues();
,并将var-rngA=rng.getValues()[0];
修改为rngA[i][0]
rngA[i]
- 将
- 在上面修改的脚本中,一列的所有行都被检查。如果您想检查特定的列,请告诉我
如果这不是您想要的结果,我很抱歉。@janine610谢谢您的回复。我很高兴您的问题得到解决。也谢谢您。
function hideColumnsDate(row) {
var row=row||1;
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getRange(row,1,1,sh.getLastColumn());
var vA=rg.getValues()[0];
var today=new Date().valueOf();
vA.forEach(function(e,i){
var rowdate=new Date(e).valueOf();
if(((today-rowdate)/86400000)>7) {
sh.hideColumns(i+1);
}
});
}
for(var i = 0; i < rngA[0].length ;i++)
{
if(isDate(rngA[0][i]) && (((today - new Date(rngA[0][i]).getTime())/day) > 7 ))
function hideColumnsDate(row) {
var row=row||1;
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getRange(row,1,1,sh.getLastColumn());
var vA=rg.getValues()[0];
var today=new Date().valueOf();
vA.forEach(function(e,i){
var rowdate=new Date(e).valueOf();
if(((today-rowdate)/86400000)>7) {
sh.hideColumns(i+1);
}
});
}