Google apps script Google Sheets基于今天隐藏X行';日期
我命名了所有行数相同的区域(21),所有命名区域都以包含日期的单元格开头。当日期比今天的日期早时,我想隐藏其日期单元格下的所有行。或者,隐藏紧跟在日期之后的关联的21行。我不知道如何写剧本,但我会学的。我也发现我不能问一个问题,很抱歉 我在stackoverflow中发现一个脚本,用于隐藏日期早于今天的行:Google apps script Google Sheets基于今天隐藏X行';日期,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我命名了所有行数相同的区域(21),所有命名区域都以包含日期的单元格开头。当日期比今天的日期早时,我想隐藏其日期单元格下的所有行。或者,隐藏紧跟在日期之后的关联的21行。我不知道如何写剧本,但我会学的。我也发现我不能问一个问题,很抱歉 我在stackoverflow中发现一个脚本,用于隐藏日期早于今天的行: function hideRows() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = ss.getSheetByName
function hideRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("MON");
var v = s.getRange("A:A").getValues();
var today = new Date();
today.setHours(0, 0, 0, 0);
for (var i = s.getLastRow(); i > 2; i--) {
var t = v[i - 1];
if (t != "") {
var u = new Date(t);
if (u < today) {
s.hideRows(i);
}
}
}
}
函数hideRows(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getSheetByName(“MON”);
var v=s.getRange(“A:A”).getValues();
var today=新日期();
今天,设定时间(0,0,0,0);
对于(var i=s.getLastRow();i>2;i--){
var t=v[i-1];
如果(t!=“”){
var u=新日期(t);
如果(u<今天){
s、 希德罗斯(i);
}
}
}
}
打开工作表时,我希望日期早于今天的行会导致接下来的21行被隐藏。尝试以下操作:
这将获取活动工作表上的所有范围
function hideNamedRange() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rgA=sh.getNamedRanges();
var dv=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()).valueOf();
for(var i=0;i<rgA.length;i++) {
var vA=rgA[i].getRange().getValues();
if(vA[0][0] && new Date(vA[0][0]).valueOf()<dv) {
sh.hideRows(rgA[i].getRange().getRow(), rgA[i].getRange().getHeight());
}
}
}
函数hideNamedRange(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rgA=sh.getNamedRanges();
var dv=新日期(新日期().getFullYear(),新日期().getMonth(),新日期().getDate()).valueOf();
对于(var i=0;i)您的脚本不会尝试对命名范围执行任何操作。欢迎使用。术语“命名范围”在Google Sheets上下文中有特殊含义。您是指此含义还是指其他含义?我理解我不应该使用术语“命名范围”。由于每个命名区域的行数相同,但日期不同,我认为仅隐藏行可能比隐藏命名区域更容易。@GaryFuller请回答您的问题以澄清“命名区域”的含义,并添加您试图根据需要调整脚本的内容。
function hideNamedRange() {
var ss=SpreadsheetApp.getActive();
var rgA=ss.getNamedRanges();
var dv=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()).valueOf();
for(var i=0;i<rgA.length;i++) {
var rg=rgA[i].getRange();
var sh=rg.getSheet();
var vA=rg.getValues();
if(vA[0][0] && new Date(vA[0][0]).valueOf()<dv) {
sh.hideRows(rgA[i].getRange().getRow(), rgA[i].getRange().getHeight());
}
}
}