大家好(我是脚本新手)
这是我需要帮助的工作表示例。
https://docs.google.com/spreadsheets/d/1iypkWdUsSkow9m8nTSFS25HgY1d5vsVMZvjEynwQJcM/edit?usp=sharing
我需要的是一个可以在edit上运行的脚本。
用户有5个可选字段,以黄色突出显示。只有在编辑单元格F3时,脚本才应运行。
它应该做的是隐藏第1行与F3不匹配的所有列。
请帮助!
答案 0 :(得分:0)
我写了这个小函数,它根据F3
中下拉列表的值来隐藏或取消隐藏列,并且仅在修改此单元格时才运行。
将此复制到绑定到电子表格的脚本中:
function onEdit(e) {
var ss = e.source; // Spreadsheet that triggered the function
var sheet = ss.getActiveSheet();
var sheetName = "Sheet1"; // Change accordingly
var range = e.range; // Range that was edited
var editedColumn = range.getColumn();
var editedRow = range.getRow();
var column = 6;
var row = 3;
// Check that the edited cell is F3 and the edited sheet is the one you want:
if(column == editedColumn && row == editedRow && sheet.getName() == sheetName) {
var dropdownValue = range.getValue(); // Value of F3
// Index of last column with content. If you want to hide the blank columns after that, use sheet.getMaxColumns() instead:
var cols = sheet.getLastColumn();
// First row values:
var headers = sheet.getRange(1, 1, 1, cols).getValues()[0];
// Looping through each column (hiding or unhiding depending on whether value matches):
for(var i = 1; i < cols; i++) {
if(headers[i] != dropdownValue) {
sheet.hideColumns(i + 1);
} else {
sheet.showColumns(i + 1);
}
}
}
}
请告诉我这是否适合您。