![](/img/trans.png)
[英]How do I replace / update multiple rows based the possibility that any of the columns in those rows may change?
[英]how do I change this google app script to hide sheets columns instead of rows based on column dates
所以我在成為一名稱職的程序員方面還有很長的路要走,但我確實涉足谷歌表腳本。
我以前有一個在計時器觸發器上運行的腳本,以根據在 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);
}
}
這將設置為每晚午夜運行,以隱藏當前日期以外 +-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);
}
}
}
}
電子表格示例: https : //docs.google.com/spreadsheets/d/1EjRIeDPrG_qp1S9QhInl9r3G0cZx_16OvnTXORgA3n4/edit?usp=sharing
有兩張紙,一張是我的舊版布局,稱為“OLD”,我想要的新版面稱為“NEW”
提前感謝任何能夠提供幫助的人
此函數隱藏頂行日期小於昨天的列。
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);
}
});
}
隱藏列之前我的電子表格:
隱藏列后我的電子表格:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.