我正在寻求解决过去 2-3 小时一直在解决的问题,我认为这对许多人来说非常容易。我得到了以下功能,虽然有时有点慢,但效果很好。
function onEdit(e) {
var sheet = e.source.getActiveSheet()
if (sheet.getName() !== 'Team' || e.range.getA1Notation() !== 'D16') return;
e.range.offset(0, 0).getValue() === 'Show' ? sheet.showRows(17, 7) : sheet.hideRows(17, 7)
然而,我得到了两个几乎相同的功能,我需要同时运行。即
2号
function onEdit(e) {
var sheet = e.source.getActiveSheet()
if (sheet.getName() !== 'Team' || e.range.getA1Notation() !== 'D25') return;
e.range.offset(0, 0).getValue() === 'Show' ? sheet.showRows(26, 10) : sheet.hideRows(26, 10)
}
No3。
function onEdit(e) {
var sheet = e.source.getActiveSheet()
if (sheet.getName() !== 'Team' || e.range.getA1Notation() !== 'D37') return;
e.range.offset(0, 0).getValue() === 'Show' ? sheet.showRows(38, 10) : sheet.hideRows(38, 10)
}
我试图让所有三个单独工作:
- 简单地添加所有 3
- 使用不同的函数名称添加所有 3 个
- 在同一代码(函数)中添加多个 if(不确定是否正确完成,因为它不起作用)
最佳答案
您还可以将三个脚本“合并”为一个。尝试这样的事情
function onEdit(e) {
var sheet, cells, rows, ind;
sheet = e.source.getActiveSheet();
cells = ['D16', 'D25', 'D37'];
rows = [[17, 7], [26, 10], [38, 10]];
ind = cells.indexOf(e.range.getA1Notation());
if (sheet.getName() !== 'Team' || ind == -1) return;
e.value === 'Show' ? sheet.showRows(rows[ind][0], rows[ind][1]) : sheet.hideRows(rows[ind][0], rows[ind][1])
}
看看这是否有效?
关于javascript - 在 google script/Sheet 中组合 3 个独立的 Onedit 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41429402/