Dar*_*sun 5 google-docs google-sheets google-apps-script
如果A列为空,我正试图隐藏行.我想将它应用于特定工作表(第1周,第2周,第3周,第4周和第5周).这是我到目前为止第一周的代码.
function ConditionalHideRow() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Week1");
var condition = sheet.getRange("A:A").getValue();
if (condition = "EMPTY") {
sheet.hideRows(1,125)
}
Run Code Online (Sandbox Code Playgroud)
编辑:奖金问题,当A列填满时,有什么方法可以让它取消隐藏?我正在使用=查询公式来填充我的电子表格,并且随着更多数据的添加,长度将需要更改.
你不需要这个公式,你可以使用过滤器......
更新:这也适用于你的奖金问题.填充列后,如果未选中"(空白)",则不再符合过滤条件.
我假设“EMPTY”实际上并不是在 col A 中找到的字符串,并且您确实想检查 col A 是否真的为空?如果是这样,请尝试:
function hideRows() {
["Week1", "Week2", "Week3", "Week4", "Week5"].forEach(function (s) {
var sheet = SpreadsheetApp.getActive()
.getSheetByName(s)
sheet.getRange('A:A')
.getValues()
.forEach(function (r, i) {
if (!r[0]) sheet.hideRows(i + 1)
});
});
}
Run Code Online (Sandbox Code Playgroud)
或者,对于更“经典”的方法:
function hideRows2() {
var sheets = ["Week1", "Week2", "Week3", "Week4", "Week5"];
for (var i = 0, sLen = sheets.length; i < sLen; i++) {
var sheet = SpreadsheetApp.getActive()
.getSheetByName(sheets[i])
var val = sheet.getRange('A:A')
.getValues();
for (var j = 0, vLen = val.length; j < vLen; j++) {
if (!val[j][0]) sheet.hideRows(j + 1)
}
}
}
Run Code Online (Sandbox Code Playgroud)
确保没有太多空白行(在最后一行数据之后),因为这可能会导致脚本执行超时。
归档时间: |
|
查看次数: |
16123 次 |
最近记录: |