我哪里错了? onEdit - Google 工作表脚本完成
Where am I going wrong? onEdit - Google sheets script finalizations
我只是想对我的脚本做一些额外的补充。
https://docs.google.com/spreadsheets/d/1I6mDHrXdbvzJwnODPtBEafyBp2tux56NZRHAfB-S9_E/edit?usp=sharing
上sheet'Show SCM Category'
选择E4下拉菜单时
如果'Updated'那么
F1 变成文字'Col1'
如果'SCM Category'那么
F1变成文字'Col4'
如果'Company'那么
F1变成文字'Col6'
我在脚本末尾添加了几行,但我不太明白我哪里出错了。
这样我就可以使用函数
=query({'Newest at Top'!A1:N}, "select * where Col4 contains '"&B1&"' order by '"&F1&"',Col1,Col5",0)
即这样我就可以用 '"&F1&"' 指定要排序的列..
脚本是:
function onEdit(e) {
var sheets = ['Sanshiro', 'Yujiro', 'Josh', 'Suil', 'Martin','Show SCM Category'],
cols = [1, 6],
writeCols = [15, 11],
ind = cols.indexOf(e.range.columnStart);
if (sheets.indexOf(e.source.getActiveSheet()
.getName()) === -1 || ind === -1 || !e.value) return;
if (ind === 0 && e.value === 'Update') {
e.range.setValue(new Date());
} else if (ind === 1) {
if (e.range.offset(0, 5)
.getValue() === '') e.range.offset(0, 5)
.setValue(2);
if (e.range.offset(0, 9)
.getValue() === '') e.range.offset(0, 9)
.setValue(new Date());
if (e.range.offset(0, -5)
.getValue() === '') e.range.offset(0, -5)
.setValue(new Date());
}
else if (ind === 1 && e.value === 'Updated') {
e.range.setValue(Col1); }
else if (ind === 1 && e.value === 'SCM Category') {
e.range.setValue(Col4);}
else if (ind === 1 && e.value === 'Company') {
e.range.setValue(Col6);
}}
或者也许有更简单的方法可以使用 =if (ISTEXT....?
非常感谢任何帮助!!
您可以使用公式来做到这一点。在 F1 中,尝试:
=iferror(vlookup(E1, {"Updated","Col1"; "SCM Category" ,"Col4"; "Company" , "Col6" },2,0))
注意:查看您的电子表格时,我注意到 E1 中的下拉菜单,因此我在公式中使用 E1 而不是 E4(您的问题中引用的单元格)。
我只是想对我的脚本做一些额外的补充。 https://docs.google.com/spreadsheets/d/1I6mDHrXdbvzJwnODPtBEafyBp2tux56NZRHAfB-S9_E/edit?usp=sharing
上sheet'Show SCM Category' 选择E4下拉菜单时
如果'Updated'那么 F1 变成文字'Col1'
如果'SCM Category'那么 F1变成文字'Col4'
如果'Company'那么 F1变成文字'Col6'
我在脚本末尾添加了几行,但我不太明白我哪里出错了。 这样我就可以使用函数
=query({'Newest at Top'!A1:N}, "select * where Col4 contains '"&B1&"' order by '"&F1&"',Col1,Col5",0)
即这样我就可以用 '"&F1&"' 指定要排序的列..
脚本是:
function onEdit(e) {
var sheets = ['Sanshiro', 'Yujiro', 'Josh', 'Suil', 'Martin','Show SCM Category'],
cols = [1, 6],
writeCols = [15, 11],
ind = cols.indexOf(e.range.columnStart);
if (sheets.indexOf(e.source.getActiveSheet()
.getName()) === -1 || ind === -1 || !e.value) return;
if (ind === 0 && e.value === 'Update') {
e.range.setValue(new Date());
} else if (ind === 1) {
if (e.range.offset(0, 5)
.getValue() === '') e.range.offset(0, 5)
.setValue(2);
if (e.range.offset(0, 9)
.getValue() === '') e.range.offset(0, 9)
.setValue(new Date());
if (e.range.offset(0, -5)
.getValue() === '') e.range.offset(0, -5)
.setValue(new Date());
}
else if (ind === 1 && e.value === 'Updated') {
e.range.setValue(Col1); }
else if (ind === 1 && e.value === 'SCM Category') {
e.range.setValue(Col4);}
else if (ind === 1 && e.value === 'Company') {
e.range.setValue(Col6);
}}
或者也许有更简单的方法可以使用 =if (ISTEXT....?
非常感谢任何帮助!!
您可以使用公式来做到这一点。在 F1 中,尝试:
=iferror(vlookup(E1, {"Updated","Col1"; "SCM Category" ,"Col4"; "Company" , "Col6" },2,0))
注意:查看您的电子表格时,我注意到 E1 中的下拉菜单,因此我在公式中使用 E1 而不是 E4(您的问题中引用的单元格)。